当前位置: 首页 > 知识库问答 >
问题:

如何在Firebase Firestore中使用查询

罗学真
2023-03-14

我正在使用Firebase函数和Firebase FiRecovery开发一个存储用户数据的API。

我想使用存储在字段中的属性来定位文档。这是Firebase文档,其中说明了如何实现相同的目标。

// Create a reference to the cities collection
var citiesRef = db.collection('cities');

// Create a query against the collection
var queryRef = citiesRef.where('state', '==', 'CA');

我想处理两种情况

>

  • 如果没有符合当前条件的文件

    如果有两份以上的现有条件文件

    上述两种情况如何处理?

  • 共有2个答案

    越飞鸾
    2023-03-14

    公认的答案并没有说明如何从每份文件中提取数据,imo的答案只有一半。下面将让您遍历每个文档并提取数据。

    db.collection("cities").get().then(function(querySnapshot) {
        querySnapshot.forEach(function(doc) {
            // doc.data() is never undefined for query doc snapshots
            console.log(doc.id, " => ", doc.data());
        });
    });
    
    周昊乾
    2023-03-14

    按照我们在上面评论中的“讨论”,在Cloud Function中,您可以使用get()方法返回的QuerySnapshot执行以下操作:

    admin.firestore().collection("cities")
        .where('state', '==', 'CA')
        .get()
        .then(querySnapshot => {
            if (querySnapshot.size == 0) {
                console.log("0 documents");
            } else if (querySnapshot.size > 2) {
                console.log("More than 2 documents");
            } 
        });
    

    如上所述,请注意,这将需要读取集合中的每个文档。如果您有一个非常大的集合,您可以编写一个云函数,在每次向集合中添加/删除文档时更新计数器。

     类似资料:
    • 问题内容: 我正在使用Firebase函数和Firebase Firestore开发用于存储用户数据的API。 我想使用存储在其字段中的属性来查找文档。这是Firebase文档,其中说明了如何实现相同的功能。 我想处理两种情况 在没有文件的情况下 有两个以上具有当前条件的文件 如何处理以上两种情况? 问题答案: 按照上面的注释中的“讨论”,在Cloud Function中,您可以使用方法返回的方法

    • 问题内容: 如何在MySql中运行此查询? 它会显示如下错误消息: 问题答案: 该语句/方法适用于PostgreSQL和Sybase(我想可能还有更多),所以也许您可以看一下: http://www.artfulsoftware.com/mysqlbook/sampler/mysqled1ch20.html 它应该向您展示一些使用MySQL的方法(以及PHP中的一两个方法,我只知道它不在您的标签列

    • 问题内容: 我非常热衷于在CSS中使用媒体查询,但是我对如何使用它感到困惑。我有立场 我的查询要求是 如果屏幕宽度是100到480,那么会出现不同的样式, 如果屏幕宽度从481到600,那么会出现不同的样式, 如果屏幕宽度为601到800,那么会出现不同的样式, 如果屏幕宽度为801,则默认CSS应该有效。 问题答案:

    • 我必须得到特定的数据,如"角色"表已提交状态,我需要状态=1,所有数据从角色表

    • 我尝试为特定的查找我的实体。我的实体知道一周中的几天作为集合,知道两个作为开始和结束。 我的实体是这样的: 当我运行调用方法的测试时,我得到以下信息: 我搜索了一些关于如何在中正确使用panache的信息,但不幸的是,我没有找到任何信息。

    • 问题内容: 我想查询mysql数据库中的表以获取切片值: 但是我得到这个错误: 我怎样才能解决这个问题? 问题答案: sqlx为此提供了很好的帮助:在In()中,我们只需要使用args和Rebind准备查询,如下所示: 另外,我建议您在这里看看:http : //jmoiron.github.io/sqlx/有很多示例,包括 IN