ホームページ > Java > &#&チュートリアル > Firebase Realtime Database でユーザー名の存在を確実に確認するにはどうすればよいですか?

Firebase Realtime Database でユーザー名の存在を確実に確認するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-12 11:13:10
オリジナル
448 人が閲覧しました

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

Firebase データベース内の値の存在を確認する方法

Firebase Realtime Database を使用した Android 開発では、ユーザーの一意性を確保することが重要です新しいアカウントを登録するときに詳細を確認します。したがって、ユーザーの作成を許可する前に、特定のユーザー名がすでに存在するかどうかを確認することが重要です。

問題ステートメント

最初はカスタム メソッド usernameExists() がチェックに使用されました。ユーザー名の存在。ただし、一貫して true が返されるため、正確な検証プロセスが妨げられます。

ソリューション

Firebase の getReference() メソッド

の getReference() メソッドFirebaseDatabase は DatabaseReference オブジェクトを返します。

での 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 Realtime Database でユーザー名の存在を確実に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート