TypeError:“参考”对象在 javascript 中不可迭代

Posted

技术标签:

【中文标题】TypeError:“参考”对象在 javascript 中不可迭代【英文标题】:TypeError: 'Reference' object is not iterable in java script 【发布时间】:2020-07-17 17:38:47 【问题描述】:

我想从 firebase 检索数据到 javascrip。我如何获取一些数据并将输出数据获取到变量。这是我的代码

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp();

exports.sendNotificationUser = functions.firestore
    .document('donorRequests/donorRequestId')
    .onWrite((snapshot, context) => 
        var tokens = [];
        // var accounts = admin.firestore().collection('accounts').where("bloodType", '==', record.bloodType).where("rhesus", '==', record.rhesus).get();
        for (const i of accounts) 
            tokens.push(account.val().token);
        
        var payload = 
            "notification":
                'title': 'Hai Pahlawan!',
                'body': 'Seseorang butuh kamu, yuk kita bantu :)'
            
        
        admin.messaging().sendToDevice(tokens, payload);                
    )

错误信息是

TypeError:帐户不可迭代

任何人都可以帮助我

【问题讨论】:

【参考方案1】:

从API documentation 可以看出,Firestore 的query.get() 返回一个使用QuerySnapshot 对象解析的承诺。您将不得不使用该承诺等待查询完成,然后迭代 QuerySnapshot 对象中的文档。

我建议从 documentation 开始了解查询如何与 Firestore 一起使用,并查看一些示例。

此外,您还必须了解 javascript Promise 如何与 Cloud Functions 一起使用。您必须正确处理来自查询的承诺和来自sendToDevice 的承诺,否则该功能将不起作用。详情请参阅documentation。

【讨论】:

以上是关于TypeError:“参考”对象在 javascript 中不可迭代的主要内容,如果未能解决你的问题,请参考以下文章

Webpack错误:TypeError:对象原型可能只是一个对象或null:未定义

在执行并行 ssh 时获取“TypeError:'NoneType' 对象不可迭代”

TypeError:“NoneType”对象在 Python 中不可迭代

TypeError:'int'对象在运行多处理时不可调用

TypeError:“列表”对象在尝试访问列表时不可调用

TypeError:“DataFrame”对象在使用除法时不支持项目分配