0
String userID = user.getUid(); 
mFirebaseDatabase = FirebaseDatabase.getInstance(); 

ユーザーのuserIdがあるので、2回目(サインイン後)にアプリケーションを開くときに、選択したユーザータイプのレイアウトを表示しないでください。だから私は使用が内部的に顧客かスタッフかをチェックする。だから問題は、私はそこにあるユーザーIDを確認することです。ユーザーIDがあるかどうかを確認する方法が見つかりませんでした。 addListenerForSingleValueEventというメソッドがありますが、それは私のシナリオで私を助けません。データベースの画像(プリ画像)は、私が最初に、ユーザーがFirebaseデータベースの特定の部分に存在するかどうかを確認するには、このFirebaseがデータの値を取得する

mFirebaseDatabase.getReference().child("Users").child("Customers") 

答えて

2

後も継続する方法がわからない、ここで

enter image description here

を与えていますリスナーを追加してdataSnapshotオブジェクトに直接exists()メソッドを使用する必要があります。したがって、UsersノードがFirebaseデータベースのルートの直下にあるので、次のコードを使用してください:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference customersRef = rootRef.child("Users").child("Customers").child(userID); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     if(dataSnapshot.exists()) { 
      //do somethig 
     } else { 
      //do something else 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
customersRef.addListenerForSingleValueEvent(eventListener); 
+0

これはちょうど聞いています!あまりにも時間がかかります。リスナーなしで直接問い合わせることはできませんか、値を設定するメソッドのようにすることはできません! – eagle

+0

いいえ、あなたが言うように直接照会することはできません。 Firebaseについて言えば、それはリスナーに関するすべてです。したがって、一部のデータを取得するには、リスナーを追加する必要があります。値を設定するときには、参照で直接 'setValue()'メソッドを使う必要があります。データを取得するには、リスナーを接続する必要があります。 –

+0

これを明確にしてくれてありがとう! – eagle

関連する問題