[英]Firebase checking if exists returns false where it should return true
我正在嘗試檢查是否存在具有特定電子郵件的用戶。 使用此電子郵件的用戶位於數據庫中,因此檢查應返回true而不是false。
這是架構:
這是代碼:
final DatabaseReference userRef = FirebaseDatabase.getInstance().getReference().child("users");
userRef.orderByChild("email").equalTo("rafael.adel20@gmail.com").limitToFirst(1).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println(dataSnapshot); //returns { key = users, value = null }
if(dataSnapshot.getChildrenCount() > 0) {
//user already exists (Never executed)
} else {
//user doesn't exists (Always executed)
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
如果setPersistenceEnabled(true)
,則使用addListenerForSingleValueEvent
可以導致返回本地緩存版本的數據,而不是從服務器返回最新版本(而調用addValueEventListener
將確保獲得最新版本)。 另一種方法,如果使用addListenerForSingleValueEvent
則調用query.keepSynced(true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.