firebaseを使い始めたばかりなので、複雑なものがどれくらい簡単か、どれほど複雑な単純なものができるかは驚きです。firebaseデータベースの値を一度取得する方法(Android)
ユーザがFirebaseデータベースに存在するかどうかを確認する必要があります。存在する場合は、そのキーと値を取得する必要があります。
私は鍵を持っていると私は私のユーザーのサブツリーに行くと同じキー(ID)を持つ子供のためにlokingでDBにそれを見つけることを試みる
DatabaseReference root_firebase = FirebaseDatabase.getInstance().getReference();
DatabaseReference users_firebase = root_firebase.child("Users");
DatabaseReference friend_found = users_firebase.child(key_searched_friend);
私はそれを持っていたら、私が呼び出そういくつかの方法
friend_found.getValue();
または
friend_found.child("user_name").getValue();
のようなしかし、それは存在しない、
私は、この値を照会する場合、データが変更されませんので、私は)私はonDataChangedオーバーライドされたメソッド(でこれを行うことはできません両方
friend_found.getKey();
friend_found.child("user_name").getKey();
を行うことができますので、これは奇妙なようです。
これは私のfirebaseデータベース構造である:あなたが言う
{
"RoomNames" : {
"Room-KM5cof0jcoMN8a4g6vC" : {
"room_name" : "TESTrOOM"
},
"Room-KM5dg_WPRdEOT4_oJ1r" : {
"room_name" : "testRoom2"
}
},
"Users" : {
"User-KM5ZaGq0xvjQis05CPF" : {
"user_name" : "Enrique"
}
}
}
これは有用であろうどのように私は、理解していないユーザーがデータベースに追加されるたびので、それはまた、としてそれを追加します友人、他のnosql DBは、DBのどの部分でも.getValue()または.exists()を使用させています。私は確信していますが、この機能をブロックする利点はありません。 –
また、独自のドキュメントのコードでも[linkToTheirCode](https://www.firebase.com/docs/android/guide/retrieving-data.html#section-reading-once)をコンパイルしていない場合でも、onClancelled実装されなければならず、onCancelledを上書きすることはできません。 エラー:(143、88)エラー:は抽象メソッドではなく、ValueEventListenerのonCancelled(DatabaseError)抽象メソッドをオーバーライドしません。 エラー:(148,21)エラー:メソッドはスーパータイプのメソッドをオーバーライドしたり実装したりしません。 ' –
あなたのリンクは古いドキュメントです。 Firebase 9.x.xを使用している場合は、[ValueEventListenerの新しいドキュメント](https://developers.google.com/android/reference/com/google/firebase/database/ValueEventListener)を参照してください。 'onCancelled()'のパラメータ型が変更されました。 –