私は以下のデータ構造を内部に持っていますFirebase
リアルタイムデータベース。私はどのようにコンテンツを抽出するアイデアがありません。Firebaseデータベース - キーの下で値directyを取得するには? (カスタムクラスの下にはありません)
マイfirebase
リアルタイムのデータベース構造:
root
|--inGroup
|--#userID
|--#randomId:(the string I want to extract is here)
|--#randomId2:(the string I want to extract is here)
|--#randomIdX:(the string I want to extract is here)
いずれも、どのように私のAndroidアプリでそれを抽出するために私を教えることができますか?
マイコード:
firebase
デシベルからコンテンツを抽出するためのパーツ:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference groupInviteRef = database.getReference("inGroup").child(FirebaseAuth.getInstance().getCurrentUser().getUid());
groupInviteRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot datasnapshot : dataSnapshot.getChildren()) {
-----I am not sure what to fill in here--------
}
}
}
私は
//Insert a record into InGroup tree
DatabaseReference inGroupRef = FirebaseDatabase.getInstance().getReference("inGroup").child(uid);
inGroupRef.push().setValue(groupId);
私はドン抽出したいデータを保存するための部分」次の理由により、データベースから文字列を抽出する方法を理解しています。
1)通常、値の属性を取得するにはdatasnapshot.getValue(XXXX.Class)
を使用しますが、今回は自分自身のカスタムクラスではなく文字列そのものです。
2)私はdatasnapshot.getvalue(String.class)
を使用しようとしました。しかし、このエラーが発生しました:
com.google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to String
誰も私が望む情報を抽出する方法を教えてもらえますか?またはpush().setValue()
を実行するときにカスタムクラスに入れなければなりませんか?
ありがとうございます!
あなたの問題は解決しましたが、それがうまくいかなかったのは、onDataChangeの引数、つまりdataSnapshotと同じvaribale名をforループに使用していたためでした –