gpt4 book ai didi

android - 如何使用 FIREBASE 为群聊生成结构?

转载 作者:行者123 更新时间:2023-11-30 04:54:27 26 4
gpt4 key购买 nike

enter image description here

我正在开发聊天应用程序,需要有关其组结构的帮助。

直到 groupIcon 之前,我已经在管理结构,但现在如何创建具有 0 ... 1... 2... 等... 的成员 结构?

这是我的代码:

private void createGroup(String strGroupName) {

RootRef = FirebaseDatabase.getInstance().getReference("GroupDetail");

String strGroupID = RootRef.push().getKey();

HashMap<String, String> groupMap = new HashMap<>();
groupMap.put("_id", group_id);
groupMap.put("adminId", admin_id);
groupMap.put("adminName", admin_name);
groupMap.put("createdAt", created_at);
groupMap.put("groupIcon", group_icon);

RootRef.child(strGroupID).setValue(groupMap)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {

Toast.makeText(activity, "Group created
successfully",Toast.LENGTH_SHORT).show();
}
});
}

最佳答案

members属性你有一个数组。我实际上建议先将该模型更改为这样的 map :

members: {
"5c6260...63d00": true,
"5c6262...63d02": true
}

这样做的原因是,您通常希望每个用户最多成为聊天室成员一次,而数组可以多次具有相同的值。使用 map 会自动避免这个问题,因为键在 map (和 Firebase 的 JSON)中保证是唯一的。有关更多信息,请在此处查看我的回答:Firebase query if child of child contains a value

上面的结构你可以写成Map<String, boolean>在 Java 中:

Map<String, boolean> members = new Map<>();
members.put("5c6260...63d00", true);
members.put("5c6262...63d02", true);
groupMap.put("members", members);

关于android - 如何使用 FIREBASE 为群聊生成结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59478710/

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