Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
flatterfirebase如何获取随机文档_Firebase_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

flatterfirebase如何获取随机文档

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获

我正试图从Firebase获得一些随机帖子。但我无法获取随机文档id

有没有办法从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呢。