これは次の構造体です。 enter image description here 私は、接続しているユーザの電子メール=現在の電子メールがある会社、電話、および都市を選択します。Firebaseがヌル値を返す
これは私のコードです:
DatabaseReference mDatabases = FirebaseDatabase.getInstance().getReference();
Query query = mDatabases.child("Users").orderByChild("email").equalTo(FirebaseAuth.getInstance().getCurrentUser().getEmail().toString());
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
User user = dataSnapshot.getValue(User.class);
String company = user.getCompany();
String city = user.getCity);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
返された結果がnullです。
dataSnapshot.getValue(User.class)
をdataSnapshot.getValue()
に変更すると、ノードのすべての値が返されます。
ログに何も表示されませんか?接続エラーまたは何か?あなたのオブジェクトUserはすべてgetterとsetterを持っていますか?変数の前に.getEmail()を試してから、valueを取得してからuserを比較してみてください。 –
あなたの質問にJSONツリーの画像へのリンクが含まれています。実際のJSONをテキストとして置き換えてください。このテキストは[Firebaseデータベースコンソール](https://console.firebase.google.com/project/_/database/data/)の[Export JSON]リンクをクリックすることで簡単に取得できます。 。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –