flatterfirebase如何获取随机文档
我正试图从Firebase获得一些随机帖子。但我无法获取随机文档id 有没有办法从Firebase中检索数据,如下所示:-flatterfirebase如何获取随机文档,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正试图从Firebase获得一些随机帖子。但我无法获取随机文档id 有没有办法从Firebase中检索数据,如下所示:- getRandomData() async { QuerySnapshot snapshot = await posts .document(random.id) .collection('userPosts') .getDocuments();} 我想说的是。现在我可以得到documentID,通常不用斜体。那么现在我如何从Firebase获
getRandomData() async {
QuerySnapshot snapshot = await posts
.document(random.id)
.collection('userPosts')
.getDocuments();}
我想说的是。现在我可以得到documentID,通常不用斜体。那么现在我如何从Firebase获得随机documentID呢
首先在列表中列出
文档ID
var list=['documentId1','documentId2','documentId3']代码>
var元素=getRandomElement(列表)代码>
然后首先查询列表中的documentSnapshot
列表documentid
var list=['documentId1','documentId2','documentId3']代码>
var元素=getRandomElement(列表)代码>
然后查询documentSnapshot
您可以首先获取集合中的所有文档
请尝试以下代码:
async getMarker() {
const snapshot = await firebase.firestore().collection('userPosts').get()
const documents = [];
snapshot.forEach(doc => {
documents[doc.id] = doc.data();
});
return documents;
接下来,从return documents中,您可以创建文档id列表,并从此列表中获取随机数(文档id)。您可以首先获取集合中的所有文档
请尝试以下代码:
async getMarker() {
const snapshot = await firebase.firestore().collection('userPosts').get()
const documents = [];
snapshot.forEach(doc => {
documents[doc.id] = doc.data();
});
return documents;
接下来,从return documents中,您可以创建文档id列表,并从该列表中获取随机数(文档id)。这里阻止您前进的主要问题是,您实际上没有任何文档直接嵌套在“posts”下。请注意,文档的名称是斜体的。这意味着这里根本没有文档。但是,之所以显示它们,是因为在该文档ID所在的路径下嵌套了一个子集合“userPosts”
因为“posts”下根本没有任何文档,所以通常的策略根本不起作用。实际上,您必须在那里填充一些数据以进行选择,或者找到另一种方法从子集合中的数据中进行选择。这里阻碍您前进的主要问题是,您实际上没有任何文档嵌套在“posts”下。请注意,文档的名称是斜体的。这意味着这里根本没有文档。但是,之所以显示它们,是因为在该文档ID所在的路径下嵌套了一个子集合“userPosts”
因为“posts”下根本没有任何文档,所以通常的策略根本不起作用。您必须实际填充一些数据以从中进行选择,或者找到另一种方法从子集合中的数据中进行选择。因此,如果我将代码更改为默认生成器,您的意思是什么。我的意思是,如果我删除斜体,那么我可以得到随机的帖子。如果可能的话,那么如何。我真的不知道你的评论是什么意思。我是说你根本没有任何文件可供选择。您需要创建文档,然后使用链接方法查找随机文档。我正试图这么说。现在我可以得到documentID,通常不用斜体。那么现在我如何从Firebase中获得随机documentID呢?如果我将代码更改为默认生成器,你会怎么说。我的意思是,如果我删除斜体,那么我可以得到随机的帖子。如果可能的话,那么如何。我真的不知道你的评论是什么意思。我是说你根本没有任何文件可供选择。您需要创建文档,然后使用链接方法查找随机文档。我正试图这么说。现在我可以得到documentID,通常不用斜体。那么现在我如何从Firebase获得随机documentID呢。