如何檢查Firebase 資料庫中的值是否存在
在使用Firebase 即時資料庫進行Android 開發時,確保使用者的唯一性至關重要註冊新帳戶時的詳細資訊。因此,在允許用戶建立之前驗證特定用戶名是否已存在非常重要。
問題陳述
最初使用自訂方法 usernameExists() 檢查使用者名稱的存在。但是,它始終傳回 true,阻礙了準確的驗證過程。
解決方案
的 getReference() 方法FirebaseDatabasebasebasebaseReference 物件。
與getReference() 如果指定路徑不存在則傳回null 的假設相反,它實際上會建立一個DatabaseReference 對象,無論路徑是否存在。因此,使用 (fdbRefer != null) 作為使用者名稱存在的條件是不正確的。
要驗證數值是否存在,可以使用 ValueEventListener。方法如下:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference userNameRef = rootRef.child("Users").child("Nick123"); ValueEventListener eventListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (!dataSnapshot.exists()) { // Create a new user with the specified username. } } @Override public void onCancelled(DatabaseError databaseError) { Log.d(TAG, databaseError.getMessage()); // Handle errors appropriately. } }; userNameRef.addListenerForSingleValueEvent(eventListener);
這種方法可讓您檢查特定路徑是否存在並相應地處理結果。或者,您可以使用查詢來執行相同的檢查:
Query query = rootRef.child("Users").orderByChild("userName").equalTo("Nick123"); query.addValueEventListener(/* ... */);
請注意,還有其他可用方法,例如建立單獨的「userNames」節點來儲存唯一的使用者名稱或使用像使用者的UID 。然而,建議的解決方案是利用上面概述的 ValueEventListener 方法。
以上是如何可靠地檢查 Firebase 即時資料庫中的使用者名稱是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!