我在android中使用Firebase
構建我的第一個項目。從Firebase中的嵌套節點獲取數據
我有建立一個由具有Firebase's database
主節點如後,媒體用作特定交其子節點,節點介質可以包含多個值,或者可以具有在其內部的一個值。
所以我想要獲取媒體的子節點值與特定的發佈節點。
您能否幫我解決。
任何幫助將深表謝意。
請檢查以下屏幕截圖。
我在android中使用Firebase
構建我的第一個項目。從Firebase中的嵌套節點獲取數據
我有建立一個由具有Firebase's database
主節點如後,媒體用作特定交其子節點,節點介質可以包含多個值,或者可以具有在其內部的一個值。
所以我想要獲取媒體的子節點值與特定的發佈節點。
您能否幫我解決。
任何幫助將深表謝意。
請檢查以下屏幕截圖。
嘗試是這樣的
FirebaseDatabase.getInstance().getReference("posts").child(UID).child("media");
其中UID是特定職位節點的關鍵。
PS:這會返回類似promise的東西,您需要爲其添加一個偵聽器。 (因爲這是實時)
Firebase ref = new Firebase(YOUR_FIREBASE_URL);
String postNode ="KddShng........";
ref.child("posts/"+postNode).child("media").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Log.e("[email protected]@_Key : >",dataSnapshot.getKey()); // you will get key of Media node
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
首先,你需要閱讀docs知道如何從火力檢索數據。
您的信息就會是這個樣子......
final Firebase ref = new Firebase("URL/posts");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot userSnapshot : dataSnapshot.getChildren()) {
//u can handle your variables name in GetData class
GetData posts = userSnapshot.getValue(GetData.class);
在另一種方式..
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("posts");
String user_id = firebaseAuth.getCurrentUser().getUid();
databaseReference.child(user_id).child("media").getValue("user_id").getValue(etc);
你可能最後一行保存爲String
在任何地方重用。
UPDATE:
如果只是想一次擷取值,你可以這樣做。
FirebaseDatabase.getInstance().getReference("posts").child("your_post_item_id").child("media").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot children : dataSnapshot.getChildren()) {
YourMediaModel mediaItem = children.getValue(YourMediaModel.class);
//add you mediaItem to list that you provided
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
我想獲取帖子節點以及裏面,我想要媒體節點列表。 會這樣做嗎? –
請展開該節點也..把新的形象爲它..所以我可以得到想法 –