gpt4 book ai didi

firebase - 如何选择一个数组到文档 firestore 中?

转载 作者:行者123 更新时间:2023-12-05 06:49:38 25 4
gpt4 key购买 nike

这似乎是我要问的一件非常糟糕的事情......但是有什么方法可以根据一系列事实进行选择吗?

例子:我有一个集合“User”和那个用户的Information,我想说的是在User Information里面有一个Post的Collection,还有那个Post的信息。

Collection('user')->UidUser->InfoUser( Collection('Post')->UidPost->InfoPost, Name, ArrayFllower )

如何使用 ArrayFllower 数组对 Post 进行分页?

如果难以理解,我再举个例子:

我是用户A,我有关注用户B和用户C,我想查看用户B和用户C的帖子,我该怎么办?我想在每次 UserA(我)收到 3 个帖子时进行分页,然后我向下滚动以自动分页

enter image description here enter image description here

更新我的问题....

我使用了 2 个查询 => 选择 Array Follow 例如:arrayFollow = [uidUserB, uidUserC]。然后我用for循环Uid获取他们的Post,为什么我只能获取Array Follow而arrayPost不能?

getData = async () => {
const user = [];
const Post = [];
await Promise.all(
await firebase.firestore().collection('user').doc(Fire.shared.uid).onSnapshot(documentSnapshot => {
user.push(...documentSnapshot.data().Followings);
})
)
for (const Uid of user) {
await firebase.firestore().collection('user').doc(Uid).collection('Post').onSnapshot(querySnapshot => {
querySnapshot.forEach(element => {
Post.push({ data: element.data() });
});
})
}
this.setState({ dataPost: Post });
}

最佳答案

我会为您的数据模型选择 SQL 数据库。

如果您目前正在开发中,我建议您通过创建 2 collections 来更新您的模型、用户和帖子,因为它更容易选择和查询帖子(使用 UidUser 将用户链接到帖子)。

如果您不在开发中,您可以创建服务器端功能,如云功能,它将循环遍历 UserA/B/C 的所有帖子并返回第一个 n 帖子,n 是传递给云函数的页码参数。

如何采集帖子:采集组查询

  1. 在选项卡中收集您的关注者 uid:['uid-A', 'uid-B', 'uid-C']

  2. 收集所有关注用户的帖子:

const querySnapshot = await db.collectionGroup('Post').where('uid', 'in', ['uid-A', 'uid-B', 'uid-C']).get();
querySnapshot.forEach((post) => {
// get post data in post.data() :
console.log(post.id, ' => ', post.data());
});

关于firebase - 如何选择一个数组到文档 firestore 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66582601/

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