簡體   English   中英

Firebase檢查是否存在返回false,它應該返回true

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM