通过名称从Firestore获取文档

时间:2020-03-09 13:33:27

标签: javascript database firebase google-cloud-firestore

firestore文档似乎使我感到困惑。假设我有一组帖子:

posts: [{ name: 'Foo' }, { name: 'Bar' }]

我想获得一个名称为Foo的帖子。

遵循本指南: https://firebase.google.com/docs/firestore/query-data/get-data

它以这一行开头: var docRef = db.collection("cities").doc("SF");

我不了解.doc("SF")的含义。 SF是ID吗?如果我的ID是自动生成的怎么办?我想使用这种方法来获取数据:

docRef.get().then(function(doc) {
    if (doc.exists) {
      ...
    }
}

但是对文档感到困惑。用get()处理数据的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

首先,请确保您understand the Cloud Firestore data model。它与Firebase实时数据库(以前称为Firebase)不同。

如果示例中的posts是包含两个文档的集合,则可以使用query通过name查找文档:

var query = db.collection("posts").where("name", "==", "Foo");
var querySnapshot = await query.get();

现在querySnapshot将是与您的查询匹配的一系列文档。

您需要使用index进行任何类型的查询,但是这个查询非常简单,可以自动为您创建。