2017-02-18 8 views
0

私はValueEventListenerを持っていて、内部コードに決して到達していません。私のアプリは認証されていますが、データを取得することができず、私は何が欠けているのか分かりません。下のコードでは、私がチェックすると、uidが正しい値を持ち、データパス( "Users/[uid]")は正しいが、値イベントリスナーの内部コードに決して到達していない。また、同じ結果を得て、ルートにリスナーを配置しようとしました。ValueEventListenerは一切入力されていません

メニューオプションを使用してFirebaseをセットアップし、認証とリアルタイムデータベースをアプリケーションに追加しました。認証は正常に動作しているので、リアルタイムデータベースに設定する必要があるものがあるかどうか疑問に思っています。私はドキュメンテーションを読んで多くの例を見てきましたが、私は何も見当たりません。

uid = FirebaseAuth.getInstance().getCurrentUser().getUid().toString(); 
    DatabaseReference userRef = ref.child("Users").child(uid).getRef(); 

    ValueEventListener userListener = new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      User user = dataSnapshot.getValue(User.class); 
      if (user == null) { 
       SettingsLoad(); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Log.e("User", "User not found"); 
     } 
    }; 

    userRef.addListenerForSingleValueEvent(userListener); 
+0

'child()'の後に '.getRef()'を呼び出さないでください。それは不要で、ある時点で問題を引き起こします(ただし、現在の問題の原因ではありません)。ちょうど: 'DatabaseReference userRef = ref.child(" Users ")。子(uid);'。 –

答えて

0

私はちょうどelse条件を追加し、結果を記録またはトーストしました!

uid = FirebaseAuth.getInstance().getCurrentUser().getUid().toString(); 
     DatabaseReference userRef = ref.child("Users").child(uid).getRef(); 

    ValueEventListener userListener = new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      User user = dataSnapshot.getValue(User.class); 
      if (user == null) { 
       SettingsLoad(); 
      } 
**else { 
Log.d("tag","User Found!"); 
}** 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Log.e("User", "User not found"); 
     } 
    }; 

    userRef.addListenerForSingleValueEvent(userListener); 
関連する問題