首頁 > Java > java教程 > 如何可靠地檢查 Firebase 即時資料庫中的使用者名稱是否存在?

如何可靠地檢查 Firebase 即時資料庫中的使用者名稱是否存在?

Barbara Streisand
發布: 2024-12-12 11:13:10
原創
549 人瀏覽過

How to Reliably Check for Username Existence in Firebase Realtime Database?

如何檢查Firebase 資料庫中的值是否存在

在使用Firebase 即時資料庫進行Android 開發時,確保使用者的唯一性至關重要註冊新帳戶時的詳細資訊。因此,在允許用戶建立之前驗證特定用戶名是否已存在非常重要。

問題陳述

最初使用自訂方法 usernameExists() 檢查使用者名稱的存在。但是,它始終傳回 true,阻礙了準確的驗證過程。

解決方案

Firebase 中的 getReference() 方法

的 getReference() 方法FirebaseDatabasebasebasebaseReference 物件。

Null 處理getReference()

與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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板