当前位置: 首页 > 知识库问答 >
问题:

Firebase函数-引用错误:未定义事件

濮俭
2023-03-14

我正在尝试做一个简单的通知功能,但每次我触发这个功能,我得到错误

类型错误: 无法读取导出处未定义的属性“参数”通知.函数.数据库.ref.onWrite (/user_code/索引.js:23:32) 在云功能新html" target="_blank">功能 (/user_code/node_modules/火基函数/库函数/库/云函数.js:105:23) 在云函数 (/user_code/node_modules/火基函数/lib/云函数.js:135:20) 在 /var/tmp/工作线程.js:758:24 在process._tickDomainCallback(内部/进程/next_tick.js:135:7)

或者我得到错误

TypeError:无法读取未定义的属性“user_id”

我从这里得到了答案

但是我一点帮助都没有,我找不到问题。这是我的代码

'use strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.sendNotification = functions.database.ref('/notifications/{user_id}/{notification_id}').onWrite((change,context) => {

const user_id = event.params.user_id;
const notification_id = event.params.notification_id;

console.log('We have a notification from : ', user_id);

if(!context.data.val()){

return console.log('A Notification has been deleted from the database : ', 
notification_id);

}

const fromUser =admin.database().ref(`/notifications/${user_id}/${notification_id}`).once('value');

return fromUser.then(fromUserResult => {

const from_user_id = fromUserResult.val().from;

console.log('You have new notification from  : ', from_user_id);

const userQuery = admin.database().ref(`Users/${from_user_id}/name`).once('value');
const deviceToken = admin.database().ref(`/Users/${user_id}/device_token`).once('value');

return Promise.all([userQuery, deviceToken]).then(result => {

  const userName = result[0].val();
  const token_id = result[1].val();

  const payload = {
    notification: {
      title : "New Friend Request",
      body: `${userName} has sent you request`,
      icon: "default",
      click_action : "none"
    },
    data : {
      from_user_id : from_user_id
    }
  };

  return admin.messaging().sendToDevice(token_id, payload).then(response => {

    return console.log('This was the notification Feature');

     });

   });

  });

});

共有1个答案

仲孙默
2023-03-14

您从未定义过事件,因此它是未定义的。您正在尝试访问未定义变量上的属性。你是说context.params.user_id吗?

(您可能正在使用一个过时的教程。在堆栈溢出时,我经常看到像这样的“发送通知”函数。请告知作者。)

 类似资料:
  • 我第一次与Firebase合作进行一个实践项目,我很难设置用户登录其帐户的能力。 我已成功设置注册,但到目前为止,我无法登录并检查身份验证状态是否正常工作。 我在控制台中不断收到的错误是“未捕获引用错误:未定义Firebase” 我自己做了一些研究,但我似乎找到的唯一答案是,你需要包含Firebase的脚本标签,这在这里不相关,因为我已经包含了它们,或者2.4.2版本的过时响应 有关守则如下:

  • 在index.js,我有: 我从以下地方复制粘贴了代码:https://firebase.google.com/docs/functions/get-started 不知何故,当我使用 我得到: 错误:分析函数触发器时出错。ReferenceError:未在对象上定义函数。(/home/[USERNAME HERE]/functions/index.js:1:87)在模块中_在对象处编译(modu

  • 升级到最新的角度CLI后。我有以前没有的错误。其中之一是:referenceerror:未定义firebase 它指的是我的用户服务中的这一行: 如何解决这个问题?

  • 问题内容: 我试图在python中定义一个基本函数,但是当我运行一个简单的测试程序时,总是会收到以下错误; 这是我用于此功能的代码; 更新:我打开了名为pyth.py的脚本,然后在给出错误时在解释器中输入pyth_test(1,2)。 谢谢您的帮助。(对于这个基本问题,我深表歉意,我以前从未编程过,并且正在尝试将Python作为一种业余爱好来学习) 问题答案: 是的,但是在哪个文件中声明了定义?它

  • 我试图将onclick事件添加到svg元素中。 custom.svg

  • 有人能告诉我,当我尝试将旧的sql切换到SQLI时,为什么这不起作用吗: 致: 它一直给我一个错误:“致命错误:调用未定义的函数mysqli_result()”