【问题标题】:TypeError in firebase function while sending notification发送通知时firebase函数中的TypeError
【发布时间】:2019-01-12 13:53:17
【问题描述】:

代码

'use strict'

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

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

admin.initializeApp(functions.config().firebase);

exports.sendNotification = functions.database.ref(`/Notifications/{user_id}/{notification_id}/`).onWrite(event =>{
const user_id = event.params.user_id;
const notification_id = event.params.notification_id;

console.log('We have a notification to send to ', user_id);

if(!event.data.val()){
return console.log("A Notification has been deleted from the database", notification_id);
}


const deviceToken = admin.database().ref(`/UserData/${user_id}/TokenID`).once('value');
return deviceToken.then(result =>{

const token_id = result.val();

const payload ={
notification: {
title: "Friend request",
body: "You have recieved a new Friend Request",
icon: "default"
}
};

return admin.messaging().sendToDevice(token_id, payload).then(response =>{
return console.log('This was the notofication Feature');
});

});

});

错误

应用程序的所有代码都可以在 android 中使用 java 完成,但函数应该在 javascript 中完成,这太糟糕了...语言新手,所以不确定错误甚至意味着什么...有人可以帮我解决它请问?

【问题讨论】:

  • 如果您是 JavaScript 新手,Cloud Functions for Firebase 并不是学习它的最佳方式。我建议先阅读Firebase documentation for Web developers 和/或阅读Firebase codelab for Web developer。它们涵盖了许多基本的 JavaScript、Web 和 Firebase 交互。您还可以在本地 Node.js 进程中使用 Admin SDK,该进程可以使用本地调试器进行调试。完成这些之后,您将能够更好地为 Cloud Functions 编写代码。

标签: javascript android firebase firebase-realtime-database google-cloud-functions


【解决方案1】:

改变这个:

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

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

admin.initializeApp(functions.config().firebase);

exports.sendNotification = functions.database.ref(`/Notifications/{user_id}/{notification_id}/`).onWrite(event =>{
const user_id = event.params.user_id;
const notification_id = event.params.notification_id;

console.log('We have a notification to send to ', user_id);

if(!event.data.val()){
  return console.log("A Notification has been deleted from the database", notification_id);
}

进入这个:

 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 = context.params.user_id;
const notification_id = context.params.notification_id;

console.log('We have a notification to send to ', user_id);

if(!change.after.val()){
return console.log("A Notification has been deleted from the database", notification_id);
}

更多信息在这里:

https://firebase.google.com/docs/functions/beta-v1-diff

【讨论】:

  • 错误类型错误:无法读取 cloudFunctionNewSignature (/user_code) 处未定义的属性 'user_id' /node_modules/firebase-functions/lib/cloud-functions.js:109:23) 在 cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:139:20) 在 /var/tmp/worker /worker.js:730:24 at process._tickDomainCallback (internal/process/next_tick.js:135:7)
猜你喜欢
  • 2019-01-30
  • 2021-10-07
  • 2019-11-29
  • 2019-09-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多