[英]How to perform search in a FirebaseDatabase?
我的Firebase NoSQL數據庫應如下所示:
每當新用戶登錄時,都應推送用戶Java模型。
如何檢查具有電子郵件地址的用戶是否已經有一個帳戶? 由於電子郵件地址位於:根> PushID>電子郵件; 並且會自動生成推送ID,因此我不確定如何在所有推送ID上進行迭代,並檢查其中是否有將其電子郵件密鑰設置為指定值。
我已經閱讀了文檔,但無法弄清楚如何解決此問題。
涉及孩子的Firebase方法可以應用於其任何孩子,無論其層次結構如何,即不限於直系孩子。
在此問題中,要搜索的孩子比普通父母低2級。 可以忽略第一級子級,而查詢方法可以直接應用於目標子級。
您應該首先為用戶創建模型類
class User {
public String email;
public String name;
}
然后從數據庫中獲取用戶並將其映射到User對象
簡單遍歷所有結果查詢
FirebaseDatabase database = FirebaseDatabase.getInstance(); // i don't know the end point since you have not specified it in the image database.getReference("myUsersEndPoint").addListenerForSingleValueEvent( new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot data : dataSnapshot.getChildren()) { User user = data.getValue(User.class); if (myField.getText().toString().eqaulsIgnoreCase(user.email)) { // exist } } } @Override public void onCancelled(DatabaseError databaseError) Log.w("MyApp", "getUser:onCancelled", databaseError.toException()); } });
僅搜索特定值在此示例中,我們使用orderByChild
和equalTo
方法將結果限制為特定的子值
FirebaseDatabase database = FirebaseDatabase.getInstance(); // i don't know the end point since you have not specified it in the image database.getReference("myUsersEndPoint").orderByChild("email").equalTo("emailToSearchhere").addListenerForSingleValueEvent( new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot data : dataSnapshot.getChildren()) { // here the user will have the specified email only } } @Override public void onCancelled(DatabaseError databaseError) Log.w("MyApp", "getUser:onCancelled", databaseError.toException()); } });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.