react本地firebase如何檢查聊天室是否已經存在

嗨,我想看看聊天室是否已經存在。我不想再和同一個人聊天。我搜索了很多,我找到了這個代碼,但它對我不起作用。我可以和同一個人聊天。

像那樣的聊天室

firebase data

如果你能幫助我,我將非常感激。

  const userChatRef = db
    .collection('chats')
    .where('users', 'array-contains', user.email);
  const [chatsSnapshot] = useCollection(userChatRef);
  const makeRoom = () => {
    if (user.email !== email && !chatAlreadyExists(email)) {
      db.collection('chats')
        .add({
          users: [user.email, email],
        })
        .then(doc => {
          navigate(MESSAGEROOM, {id: doc.id, recipientEmail: email});
        });
    } else {
      alert('Already exist!');
    }
  };
  const chatAlreadyExists = recipientEmail => {
    !!chatsSnapshot?.docs.find(
      chat =>
        chat.data().users.find(userEmail => userEmail === recipientEmail)?.length > 0,
    );
? 最佳回答:

不幸的是,在firebase查詢中,當前不能有多個'array-contains'語句。我建議只做以下幾點:

checkForDuplicateChat = (userid1, userid2) => {
    const db = firebase.firestore()
    // fetching all chats of bb@naver.com
    // userid1 = e.g. bb@naver.com
    let chats = db.collection('chats').where('users', 'array-contains', userid1).get()

    // mapping the parsed json data in the array
    data = data.docs.map(el => el.data())

    // el.users.length === 2 to check if it is a chat existing only
    // between user1 and user2 (excluding groupchats etc.)
    // userid2 = f.e. dd@naver.com
    data = data.filter(el => el.users.length === 2 && el.users.includes(userid2))

    if(data.length > 0) return // what ever happens when there already is a chat

    createChat(user1, user2)
}

我希望這在一開始會有所幫助,但請記住,當所有用戶都有大量聊天時,您將有大量的閱讀,因為在過濾掉之前,您必須獲取所有用戶的聊天記錄。

主站蜘蛛池模板: 亚洲色一区二区三区四区| 成人久久精品一区二区三区| 无码AⅤ精品一区二区三区| 性色av一区二区三区夜夜嗨| 色综合久久一区二区三区| 91在线视频一区| 亚洲中文字幕无码一区| 无码日韩人妻AV一区二区三区| 国产乱码精品一区二区三区香蕉 | 日韩一区二区免费视频| 制服丝袜一区在线| 亚洲综合无码一区二区| 日本一区二区不卡视频| 日本不卡在线一区二区三区视频| 国产高清在线精品一区二区三区 | 岛国无码av不卡一区二区| 冲田杏梨高清无一区二区| 国产高清一区二区三区视频| 国精产品999一区二区三区有限| 一区二区和激情视频| 亚洲一区二区三区国产精华液| 亚洲精品日韩一区二区小说| 日本一区频道在线视频| 中文字幕一区日韩精品| 人妻夜夜爽天天爽一区| 性色AV一区二区三区无码| 国产视频一区二区| 亚洲熟女乱综合一区二区| 国产色精品vr一区区三区| 91一区二区三区| 无码精品一区二区三区在线| 久久国产精品无码一区二区三区| 精品亚洲A∨无码一区二区三区 | AV无码精品一区二区三区宅噜噜| 亚洲国产成人久久一区WWW| 亚洲一区二区三区在线观看精品中文 | 国产亚洲一区区二区在线 | 国产精品乱码一区二区三区| 日本道免费精品一区二区| 久久精品一区二区东京热| 亚洲一区二区无码偷拍|