我有这个代码:
listener = (ValueEventListener) profile.child("db/auth/user/" + auth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
if(dataSnapshot.child("value2").exists()) {
} else{
profile.child("value2").setValue("value");
}
它检查子值2是否存在于数据库中。如果他验证他不存在,他立即创建那个值。
但是,当该子级存在并且具有不同的值(示例value2:value3)时,它只是再次创建具有值“value”的子级。换句话说,它取代了值。
有人知道有没有什么解决办法吗?
快照包含了Firebase上整个数据的引用,因此您需要像这样检查
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
void onDataChange(DataSnapshot snapshot) {
if (snapshot.hasChild("value2")) {
// run some code
}else{
profile.child("value2").setValue("value");
}
}
});