簡體   English   中英

Firebase Android-檢查值是否已經存在

[英]Firebase Android - Check if value is already exists

我需要檢查數據庫中是否已存在該值的幫助,以便用戶在更新它時無法將其更改為相同的數字,例如唯一ID

我一直在尋找解決方案的時間,但找不到任何有效的方法。

ID

為此,建議您創建另一個名為userIds節點。 每次創建新用戶時,只需在此新部分中添加用戶ID。 這個新部分應如下所示:

Firebase-root
    --- userIds
      --- Id101: true
      --- Id102: true

然后,只需在該新節點節點上放置一個偵聽器,並在dataSnapshot對象上使用exist exists()方法即可。

按照建議,您應該擁有一個數據結構,一個索引列表,為此,為什么呢? 因為當您擁有大量此類ID時,這將是一個更好的查詢。 但是,我認為您想要做的是對先前建議的補充。

您要做的是使用單個事件偵聽器,如果datasnapshot不為null,則該值存在。 關鍵是查詢所需的ID:

DatabaseReference root = FirebaseDatabase.getInstance.getReference();
DatabaseReference reference = root.child("Test").oderByChild("ID").equalsTo(someId);

reference.addSingleValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
       if (dataSnaphot != null) {
       //This means the value exist, you could also dataSnaphot.exist()
       }
    }
    //More auto generated code
);

dataSnapshot是一堆對象,因為查詢可以匹配多個結果。 如果需要每個值,則可以在其中進行迭代:

public void onDataChange(DataSnapshot dataSnapshot) {
           if (dataSnaphot != null) {
           for (DataSnapshot children : dataSnaphot.getChildrens()) {
               YourModel yourModel = children.getValue(YourModel.class);
           }
           }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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