Javascript 类型错误:';参考';对象在java脚本中不可编辑

Javascript 类型错误:';参考';对象在java脚本中不可编辑,javascript,json,firebase,push-notification,google-cloud-functions,Javascript,Json,Firebase,Push Notification,Google Cloud Functions,我想将数据从firebase检索到javascrip。如何获取一些数据并将输出数据发送到变量。这是我的密码 const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.sendNotificationUser = functions.firestore .document('donorRequests/{

我想将数据从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:帐户不可编辑

任何人都可以帮助我,从Firestore的
查询中可以看到。get()
返回一个与对象解析的承诺。您必须使用该承诺等待查询完成,然后在QuerySnapshot对象中迭代文档

我建议从开始学习如何使用Firestore进行查询,并查看一些示例

此外,您还必须了解JavaScript承诺如何与云函数配合使用。您必须正确处理查询中的承诺和
sendToDevice
中的承诺,否则函数将无法工作。有关详细信息,请参阅。

从中可以看到,Firestore的
查询。get()
返回与对象解析的承诺。您必须使用该承诺等待查询完成,然后在QuerySnapshot对象中迭代文档

我建议从开始学习如何使用Firestore进行查询,并查看一些示例

此外,您还必须了解JavaScript承诺如何与云函数配合使用。您必须正确处理查询中的承诺和
sendToDevice
中的承诺,否则函数将无法工作。有关详细信息,请参阅