我正在尝试从Firebase实时数据库访问键(节点)的值。我正在使用onWrite触发器,该触发器传递更改参数,该参数保存触发器之前和之后的数据库快照。因此,尽管使用了After触发器快照,但我希望将节点的密钥放入一个常量变量中,尽管我尝试接收TypeError。
类型错误错误:
TypeError:change.after.ref.child(...)。val不是一个函数 在exports.sendNotification.functions.database.ref.onWrite(/user_code/index.js:13:64)上
因此,虽然我看不到任何其他信息来了解如何处理此问题,但是无法以我尝试使用的方式使用.val()。
相关代码段:
'user-strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase); // load the firebase-functions and firebase-admin modules, and initialize an admin app instance from which Realtime Database changes can be made.
exports.sendNotification = functions.database.ref("/Notifications/{user_id}/{notification_type}/{sender_id}").onWrite((change, context) => {
const user_id = context.params.user_id;
const notification_type = context.params.notification_type;
const sender_id = context.params.sender_id;
//Check if the notification is still to be sent (true not false)
const notficationValid = change.after.ref.child(sender_id).val();
console.log(`Notification Valid: `, notficationValid);
我希望notifyValid变量保留'true'的值。
Firebase数据库
答案 0 :(得分:0)
不需要代码中的.ref
:
change.after.child(sender_id).val()
在.ref
上调用DataSnapshot
会给您返回DatabaseReference
,它没有val()
方法。