【问题标题】:Firestore query.get error when retrieving a document: Query.get() requires its first argument to be of type object, but it was: an array检索文档时 Firestore query.get 错误:Query.get() 要求其第一个参数是对象类型,但它是:一个数组
【发布时间】:2021-03-01 00:34:35
【问题描述】:

我在尝试使用查询从 Firestore 数据库中检索文档时收到以下错误。错误是:Uncaught FirebaseError: Function Query.get() requires its first argument to be of type object,但它是:一个数组。

正如我所料,它会返回一组文档(根据 Google 文档),我对消息感到困惑?谁能告诉我哪里出错了?

if (email) {
    var db = firebase.firestore();
    db.collection("guarantees").where("customer.email", "==", email)
    .get().then((snap) => {
        let doc = snap.docs[0];
//....

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    很难说是什么问题,但看起来email 是一个数组,如果您希望查询搜索数组,也许您可​​以使用以下代码:

    if (email) {
        var db = firebase.firestore();
        db.collection("guarantees")
           .where("customer.email", "in", email)
           .get()
           .then((snap) => {
              let doc = snap.docs[0];
              console.log(doc.data());
            }); 
       
    //....
    

    或检查 email 的类型不是对象并使用您的原始代码。

    查看这些doc's,它们非常有帮助。

    【讨论】:

    • 嗨@Cleanbeans,电子邮件是当前在本地存储中的地址,我所指的谷歌文档也是你指出的。这就是说我在重现问题时遇到了麻烦,因为我已经尝试了替代解决方法,所以最好现在暂停它,除非它再次出现。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-10-27
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    相关资源
    最近更新 更多