![](/img/trans.png)
[英]How to use useCollection react-firebase hook with firebase v9
[英]Firebase v9 on react JS
我只是想檢查我是否沒有在我的 firebase 上創建其他聊天。我查詢我與這個 email 的所有聊天,然后我檢查數組是否包含我想與之聊天的 email,但它不起作用。 我正在使用 Firebase V9。 有人有想法嗎?
function Sidebar() { const [user] = useAuthState(auth);
const chatRef = collection(db, 'chats');
const qchatExist = query(chatRef, where('users', 'array-contains', user.email) );
const chatsSnapshot = getDocs(qchatExist);
const createChat = () => {
const input = prompt('Please enter a email adresse');
if(!input) return;
if (EmailValidator.validate(input) && !chatAlreadyExists(input) && input !== user.email ) {
console.log("valide");
addDoc(collection(db, 'chats'),
{
users: [user.email, input],
});
}
else {
console.log('invalide');
}
}
const chatAlreadyExists = (data) =>
!!chatsSnapshot?.docs.find(
chat =>
chat.data().users.find( (user) => user === data)?.length > 0
);
您可能想使用Collection Group Queries 。
因此您可以一次查詢所有聊天集合。
const users = query(collectionGroup(db, 'users'), where('email', '==', 'example@hoge.com'));
並確保為查詢創建索引。
在使用集合組查詢之前,您必須創建一個支持您的集合組查詢的索引。 您可以通過錯誤消息、控制台或 Firebase CLI 創建索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.