gpt4 book ai didi

java - 如何在没有特定路径的情况下在子项下添加子项?

转载 作者:行者123 更新时间:2023-12-02 04:43:24 25 4
gpt4 key购买 nike

我有一个名为“Chats”的节点,该节点下有很多具有特定 ID 的聊天。每个具有 ID 的节点都包含消息。添加消息时应不指定任何特定路径。我该怎么做?x

我有以下代码,但缺少一个级别:

final DatabaseReference chat = FirebaseDatabase.getInstance().getReference("CHATS").child(chatID);
chat.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (!dataSnapshot.exists()){
chat.child("_s").setValue(sender);
chat.child("_r").setValue(reciever);
chat.child("_m").setValue(msg);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

我需要在一个节点中将值创建为消息。但它们是直接在chatID下创建的。像这样的事情:

final DatabaseReference chat = FirebaseDatabase.getInstance().getReference("CHATS").child(chatID);
chat.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (!dataSnapshot.exists()){
chat.CHILD().child("_s").setValue(sender);
chat.CHILD().child("_r").setValue(reciever);
chat.CHILD().child("_m").setValue(msg);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

结构应如下所示: https://cdn-images-1.medium.com/max/800/1*AHL1ZE8Kt1ctIL2LfZ0z1w.png

最佳答案

它与 ValueEventListener 和 push().setValu(Object) 结合使用:

final String chatID = getChatLeaderID(sender, reciever);
final DatabaseReference chat = FirebaseDatabase.getInstance().getReference("CHATS2").child(chatID);
final HashMap<String, Object> hashMapMsg = new HashMap<>();
hashMapMsg.put("_s", sender);
hashMapMsg.put("_r", reciever);
hashMapMsg.put("_m", msg);
chat.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
chat.push().setValue(hashMapMsg);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

关于java - 如何在没有特定路径的情况下在子项下添加子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56501998/

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