gpt4 book ai didi

javascript - 限制 firestore 中相等过滤器的数量?

转载 作者:行者123 更新时间:2023-11-30 20:07:06 24 4
gpt4 key购买 nike

我打算创建一个关注系统,一个用户可以关注多个用户。出于我的目的,我希望一个用户关注大约 20-25 个用户。

因此,为了创建提要,我计划在帖子中创建一个动态字段,其键是用户创建帖子的 uid,如下所示。

{
postText : "random text",
postImage : 'some url',
{userUID} : true
}

这里的userUID是用户创建帖子的uid。所以这样我就可以创建一个查询:

db.collection('posts')
.where(useruid1, '==', true)
.where(useruid2, '==', true)
.where(useruid1, '==', true)
.where(useruid3, '==', true)

其中useruid1useruid2useruid3是我关注的用户。

所以我需要知道where查询中是否有相等过滤器的个数限制。另外,更多的过滤器会影响性能吗??

我在文档中找不到它。对不起,如果我错过了。

最佳答案

对于这种情况,您将需要一个“OR”或“IN”查询而不是一系列的 AND(即,如果它是用户订阅的任何用户,您想要返回一个结果)。对于这种情况,您需要创建多个查询/监听器。这是一个小例子

// the posts returned from the queries
const posts = new Map();

// array to unsubscribe from listening to firestore
let postUnsubscribe = [];

// function to subscribe to all user posts
const subscribeToPosts = () => {
usersToFollow = ["user1", "user2", "user3", "user4"];

postUnsubscribe = usersToFollow.map(userToFollow => {
return firestore
.collection("posts")
.where("useruid", "==", userToFollow)
.onSnapshot(handlePost);
});
};

// handles updates to post (for all the users)
const handlePost = querySnapshot => {
for (let change of querySnapshot.docChanges) {
if (change.type === "added" || change.type === "modified") {
posts.set(change.doc.id, change.doc.data());
} else if (change.type === "removed") {
posts.delete(change.doc.id);
}
}

关于javascript - 限制 firestore 中相等过滤器的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52801965/

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