Я развернул две облачные функции Firebase для проекта (Проект № 1). Проект № 1 был перенесен в другой проект Firebase Console (Проект № 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);
});
}
});