正如你看到的每個崗位都有不同的標識(用戶誰張貼ID),我試圖讓這個孩子的參考fx3RqooRMOVRaQHGas4OWQnFK593例如所以數據庫的參考將是這樣的:
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Posts").child("fx3RqooRMOVRaQHGas4OWQnFK593");
但我想要的是爲每個帖子ID動態獲取該引用。
正如你看到的每個崗位都有不同的標識(用戶誰張貼ID),我試圖讓這個孩子的參考fx3RqooRMOVRaQHGas4OWQnFK593例如所以數據庫的參考將是這樣的:
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Posts").child("fx3RqooRMOVRaQHGas4OWQnFK593");
但我想要的是爲每個帖子ID動態獲取該引用。
您有2個選項。
如何讓自定義ID
FirebaseDatabase.getInstance().getReference().child("Posts")
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap<String, Object> post = (HashMap<String, Object>) dataSnapshot.getValue();
total= post.size();
}
}
,然後創建自定義ID
FirebaseDatabase.getInstance().getReference().child("Posts").child("post"+total).setValue(YourValue);
選項2.
只需從後點下載所有職位,因爲我只好。 。
FirebaseDatabase.getInstance().getReference().child("Posts")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
//here is your every post
String key = snapshot.getKey();
Object value = snapshot.getValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
獎金 如果你想顯示特定用戶的帖子。 (我假設) 你可以在用戶對象內的字符串arrylist中存儲按鍵。然後就叫逐一...
編碼快樂:) :)
要做到這一點,請使用以下代碼:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference postsRef = rootRef.child("Posts");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String key = ds.getKey();
Log.d("TAG", key);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
postsRef.addListenerForSingleValueEvent(eventListener);
輸出將是所有這些密鑰。
我的FirebaseRecyclerAdapter需要4個參數一個是數據庫引用,所以我必須存儲它在一個DatabaseReference變量中,然後使用它。 –
因此,請隨時做。上面的代碼向您顯示了您可以查詢Firbease數據庫並獲取所需密鑰的確切方式。 –
FirebaseDatabase.getInstance()
.getReference()
.child("Posts")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
String key = snapshot.getKey(); // key here
Object value = snapshot.getValue(); // value here
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
假設你正在使用FirbaseAuth也可以動態獲取使用FirebaseAuth.getInstance用戶ID()。getCurrentUser()的getuid( ) – gonephishing
這隻會與當前的用戶帖子一起工作,我試圖顯示所有使用FirebaseRecyclerAdapter的帖子,這個需要引用並顯示所有帖子 –