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
Javascript 如何使用firestore通过索引从数组中获取元素_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript 如何使用firestore通过索引从数组中获取元素

Javascript 如何使用firestore通过索引从数组中获取元素,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我想在每次用户可以退出或继续下一个元素时,一个接一个地显示数组中的用户元素。数组是firestore中文档的一部分。如何查询firestore以按索引检索特定元素 如何查询Firestore以按索引检索特定元素 如果要获取Firestore文档的数组类型字段的特定元素,需要获取整个文档,从该数组字段(即a)获取值,然后提取所需数据,就像提取任何JavaScript数组一样 对于客户端SDK,没有任何选项可以只获取文档字段的一个子集。可以使用RESTAPI,但不能使用客户端SDK 因此,非常具体地

我想在每次用户可以退出或继续下一个元素时,一个接一个地显示数组中的用户元素。数组是firestore中文档的一部分。如何查询firestore以按索引检索特定元素

如何查询Firestore以按索引检索特定元素

如果要获取Firestore文档的数组类型字段的特定元素,需要获取整个文档,从该数组字段(即a)获取值,然后提取所需数据,就像提取任何JavaScript数组一样

对于客户端SDK,没有任何选项可以只获取文档字段的一个子集。可以使用RESTAPI,但不能使用客户端SDK

因此,非常具体地说,您将如下所示:

var docRef = db.collection("cities").doc("SF");

docRef.get().then((doc) => {
    if (doc.exists) {
        const arrayField = doc.data().arrayField; 

        // arrayField is a JavaScript Array, you can use any method or property  
        // e.g. get index 0
        const arrayFieldFirstElement = arrayField[0];

    } else {
        // doc.data() will be undefined in this case
        console.log("No such document!");
    }
}).catch((error) => {
    console.log("Error getting document:", error);
});
如何查询Firestore以按索引检索特定元素

如果要获取Firestore文档的数组类型字段的特定元素,需要获取整个文档,从该数组字段(即a)获取值,然后提取所需数据,就像提取任何JavaScript数组一样

对于客户端SDK,没有任何选项可以只获取文档字段的一个子集。可以使用RESTAPI,但不能使用客户端SDK

因此,非常具体地说,您将如下所示:

var docRef = db.collection("cities").doc("SF");

docRef.get().then((doc) => {
    if (doc.exists) {
        const arrayField = doc.data().arrayField; 

        // arrayField is a JavaScript Array, you can use any method or property  
        // e.g. get index 0
        const arrayFieldFirstElement = arrayField[0];

    } else {
        // doc.data() will be undefined in this case
        console.log("No such document!");
    }
}).catch((error) => {
    console.log("Error getting document:", error);
});

我希望会有一个有效的解决方案来解决这个问题,这对谷歌来说有点可笑。无论如何谢谢你!正如我在回答中所写的那样,如果JavaScript SDK的工作方式与您的需求不符,您可以使用和
mask
参数。如果您从Renauds answer转到该方法的API资源管理器,您将看到一个名为JavaScript的选项卡。从那里你可以获得javascript代码来使用掩码调用api。我希望会有一个有效的解决方案来解决这个问题,这对谷歌来说有点可笑。无论如何谢谢你!正如我在回答中所写的那样,如果JavaScript SDK的工作方式与您的需求不符,您可以使用和
mask
参数。如果您从Renauds answer转到该方法的API资源管理器,您将看到一个名为JavaScript的选项卡。从那里,您可以获得使用掩码调用api的javascript代码。