[英]Firebase check data exist before insert
我在使用 Firebase 时遇到了一些问题。 我想做的是创建一个新的聊天室,如果它不存在,则获取现有的聊天室 ID。 到目前为止我所取得的成就是:
数据库结构如下:
chatrooms
chatroomID
participantID1 *(can be senderKey or recipientKey)*
participantID2 *(can be senderKey or recipientKey)*
latestMessage
我创建新聊天室的代码:
let promiseRoomKey = new Promise((resolve, reject) => {
// need to perform check before insert new chatroom
// create room for chat
var roomKey = firebase.database().ref('chatrooms').push({
[senderKey]: true,
[recipientKey] : true
}).getKey();
resolve(roomKey);
});
问题是在我创建新聊天室之前,我需要检查 senderKey 和 receiverKey 是否存在于同一个聊天室中。 如果他们都出现在同一个聊天室中,我会获取 chatroomID。 如果没有,那么我将继续创建一个新的聊天室。
但我不知道如何实际检查 senderKey 和 receiverKey 是否出现在同一个聊天室中。 有任何想法吗?
附言。 现在请忽略 latestMessage 节点,因为它只是为了减轻我的阅读目的。
谢谢!
好吧,IDK 如果它是一个很好的解决方案,但是您可以创建一个包含两个 ID(发件人和收件人 ID)的聊天室 ID,因此您需要在数据库中搜索是否存在具有这两个 ID 的聊天室。
users
id001:"User Name"
id002:"User Name"
chatrooms
id001id002
id001
id002
latestMessage
要仅在数据库中搜索一次,您可以对 id 进行排序,因此它总是首先是较低的 id,就像上面的例子一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.