我正在为一个项目(项目1)部署两个Firebase云功能。项目1已移至另一个Firebase控制台项目(项目2)。我已经编码了云功能来发送通知。在项目1上,通知运行正常,但是当我转移项目时,通知服务现在根本无法工作!有谁知道如何更改配置以使通知在Project#2上起作用? 我认为问题在于项目1的服务器密钥已经在云配置功能中,但是我不确定如何为该新项目2的服务器密钥。
让我详细解释;首先,我创建了一个连接到Firebase的项目,并设置了所有云功能,并且通知运行正常。然后,当我需要与另一个android项目进行交互时,我不得不将自己的项目移至另一个Firebase项目。现在,在使用相同的云功能和配置的情况下,我无法使通知正常工作。您知道问题出在哪里吗?
我已为您提供了index.js文件:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotificationPending = functions.database.ref('/Appointment/{id}').onCreate((snapshot,context) => {
const receiverId =snapshot.val().keyUser;
console.log("receiverId: ", receiverId);
const payload = {
notification:{
title : 'New Appointment',
body : 'You have a new Pending Appointment',
sound : 'default'
}
};
return admin.database().ref('/Users/'+receiverId).once('value').then(snap=>{
const token = snap.child("fcm_token").val();
console.log("token: ", token);
return admin.messaging().sendToDevice(token, payload);
});
});
exports.sendNotificationCompleted = functions.database.ref('/Appointment/{id}').onUpdate((change,context) => {
const after=change.after.val();
const before=change.before.val();
const receiverId =after.keyUser;
console.log("receiverId: ", receiverId);
const payload = {
notification:{
title : 'New Completed Appointment',
body : 'You have a Completed Appointment.You can upload invoice/prescription.',
sound : 'default'
}
};
if(after.status==='COMPLETED' && before.status!==after.status){
return admin.database().ref('/Users/'+receiverId).once('value').then(snap=>{
const token = snap.child("fcm_token").val();
console.log("token: ", token);
return admin.messaging().sendToDevice(token, payload);
});
}
});