[英]Firebase Android - Check if value is already exists
我需要檢查數據庫中是否已存在該值的幫助,以便用戶在更新它時無法將其更改為相同的數字,例如唯一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.