如何在Android Studio中设置转移的Firebase项目的云功能配置?

时间:2019-01-14 21:02:28

标签: firebase firebase-cloud-messaging google-cloud-functions

我正在为一个项目(项目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);
            });
    }

});

0 个答案:

没有答案