Firebase データベース内の値の存在を確認する方法
Firebase Realtime Database を使用した Android 開発では、ユーザーの一意性を確保することが重要です新しいアカウントを登録するときに詳細を確認します。したがって、ユーザーの作成を許可する前に、特定のユーザー名がすでに存在するかどうかを確認することが重要です。
問題ステートメント
最初はカスタム メソッド usernameExists() がチェックに使用されました。ユーザー名の存在。ただし、一貫して true が返されるため、正確な検証プロセスが妨げられます。
ソリューション
の getReference() メソッドFirebaseDatabase は DatabaseReference オブジェクトを返します。
指定されたパスが存在しない場合、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 サイトの他の関連記事を参照してください。