使用nodejs TypeError在firebase中获取子级的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用nodejs TypeError在firebase中获取子级的值相关的知识,希望对你有一定的参考价值。
我想知道是否有人可以告诉我我做错了什么。我正在尝试编写一个Firebase函数来发送通知。那部分起作用,但是我试图获得一个特定孩子的价值。但是,我不断收到以下错误消息:“ TypeError:无法读取未定义的属性'child'”
这是我的服务器端代码:
'use strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotification = functions.database.ref('/notifications/{receiver_user_id}/{notification_key}').onWrite((data, context)=>{
const receiver_user_id = context.params.receiver_user_id;
const notification_key = context.params.notification_key;
console.log('We have a notification to send to : ', receiver_user_id);
// Grab the current value of what was written to the Realtime Database.
const original = data.after.val();
console.log('Uppercasing', context.params.notification_key, original);
const sender_fullname = snapshot.child('notifying_user_fullname').val();
console.log('fullname value: ', sender_fullname);
if(!data.after.val()){
console.log('A notification has been deleted: ', notification_key);
return null;
}
const DeviceToken = admin.database().ref(`/tokens/${receiver_user_id}/device_token`).once('value');
return DeviceToken.then(result=>{
const token_id = result.val();
const payload = {
notification: {
title: sender_fullname,
body: "You have a new message!",
icon: "default"
}
};
return admin.messaging().sendToDevice(token_id, payload).then(response=>{
console.log('Message has been sent');
});
});
});
快照可以打印出来。当我删除快照和sender_fullname常量时,通知就可以了。但是,就像我说的那样,以这种方式执行代码时,我不断收到TypeError消息。有谁知道如何在实时数据库中的某个位置获取孩子的价值。如果有帮助,则数据快照如下所示:
[如果有人可以提供帮助,那将很好。预先谢谢你
您有一个从未定义的变量snapshot
,至少不是您在此处显示的变量。这是您使用它的地方:
const sender_fullname = snapshot.child('notifying_user_fullname').val();
尝试在未定义的对象上调用方法会给您该错误消息。
以上是关于使用nodejs TypeError在firebase中获取子级的值的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:无法在nodejs中读取未定义的属性“email”
NodeJS Mongoose record.save TypeError
无法在 nodeJS 中对用户进行身份验证:TypeError:无法使用“in”运算符在 fs 中搜索“用户名”
如何解决 NodeJS 中的“TypeError:将循环结构转换为 JSON”
TypeError:无法读取未定义的nodejs请求http的属性'0'
NodeJs 使用 ExpressJs : TypeError: string is not a function at Function.app.render