云功能无日志记录



当我的Firebase实时数据库发生变化时,我试图创建一个FCM。云函数代码粘贴在下面。到目前为止,没有通知显示,所以我试图看看云功能是否正确。然而,我在Firebase控制台上也看不到日志,所以调试很困难。谁能解释一下为什么日志没有显示?部署完成,没有问题。

const functions = require("firebase-functions");
const admin = require('firebase-admin');
admin.initializeApp(functions.config.firebase);

exports.notificationFCM = functions.database.ref('/chats/{userId}').onCreate(async (snapshot, context) => { 
const userId = context.params.userId;
const payload = {
notifiction: {
title: `New message`,
body: `Click to check your message!`,
badge: `1`,
sound: `default`
}
};

const token = await admin.database()
.ref(`tokens/${userId}`)
.once('value');
if (token.val().deviceToken != null) {
console.log(userId);
console.log('Sucess');
return admin.messaging().sendToDevice(token.val().deviceToken, payload);
}
else {
console.log('No token avaliable');
console.log(userId);
}
});

package.json

{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "14"
},
"main": "index.js",
"dependencies": {
"firebase-admin": "^9.8.0",
"firebase-functions": "^3.14.1"
},
"devDependencies": {
"firebase-functions-test": "^0.2.0"
},
"private": true
}

您的代码中有两个问题可能会阻止Cloud Function正常工作:

  1. 你声明有效载荷的方式有一个拼写错误:const payload = {notifiction:...应该是const payload = {notification:...a.

  2. 自从v1.0的Firebase SDK的云功能,你不能再通过在functions.config().firebase初始化时。


此外,您应该返回else块中的内容,如:

if (token.val().deviceToken != null) {
//...
}
else {
console.log('No token avaliable');
console.log(userId);
return null;
}

,你应该添加一个try/catch块,以便能够调试你的代码:

exports.notificationFCM = functions.database.ref('/chats/{userId}').onCreate(async (snapshot, context) => {
try {
// Your code
} catch (error) {
console.log(error);
return null;
}

});

相关内容

  • 没有找到相关文章

最新更新