gpt4 book ai didi

java - 在 firebase 中使用 ids 检索嵌套数据?

转载 作者:行者123 更新时间:2023-12-02 05:49:03 27 4
gpt4 key购买 nike

我正在尝试从 Message 节点检索消息。 messages 中的每条消息都有一个 Id。我试图实现的最终结果只是每个用户的消息,或者是否有更好的方法来存储数据,因为我不需要存储消息的 key ,但是当我不包含旧数据的 key 时已删除。

structure of my data

 DatabaseReference dbfriends= FirebaseDatabase.getInstance().getReference().child("Users");
dbfriends.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists())
{
for (DataSnapshot productSnapshot:dataSnapshot.getChildren())
{
Log.i("IDDD",productSnapshot.toString());
Log.i("IDDDDDDDD",productSnapshot.child("Messages").getValue().toString());
String friend=productSnapshot.child("Username").getValue().toString();
Log.i("This is friend",friend.toString());
friends.add(friend);

}

最佳答案

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference messagesRef = rootRef.child("Users").child(uid).child("Messages");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String sender = ds.child("sender").getValue(String.class);
String message = ds.child("message").getValue(String.class);
Log.d(TAG, sender + ": " + message);
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
messagesRef.addListenerForSingleValueEvent(valueEventListener);

logcat 中的结果将是:

Jeffy: Alic how r you?
Jeffy: Alic how r you?

如果您还需要 key ,只需使用:

String key = ds.getKey();

关于java - 在 firebase 中使用 ids 检索嵌套数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56066417/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com