0
我有一個使用Firebase的android 客戶端應用程序和和管理應用程序。每當用戶在客戶端應用程序中註冊時,我都需要向管理員應用發送推送通知。我正在嘗試使用Cloud Functions for Firebase
。我已經導出了該功能,並且我也可以在Firebase控制檯上看到該功能。使用Google雲端功能和Google Firebase推送通知
這是我index.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendMessageToAdmin = functions.database.ref('/tokens/users/{userId}/{regToken}').onWrite(event => {
if (event.data.previous.exists()) {
return;
}
const userId = event.params.userId;
const regToken = event.params.regToken;
// Notification details.
const payload = {
notification: {
title: 'You have a new User.',
body: `${userId} is the id.`,
}
};
return admin.messaging().sendToDevice(regToken, payload);
});
這裏是我的數據庫結構的火力點:
如果我使用任何門戶網站發送推送甚至FCM發送推送到管理應用程序的測試目的,我收到了推。但是這個雲端功能並沒有發送這個推送。有人能指導我什麼是錯的,我正在做。
編輯
如果我改變功能的以下內容,然後它的作品。但我仍然想知道爲什麼上述功能不起作用。
exports.sendMessageToAdmin = functions.database.ref('/tokens/users/{userId}').onWrite(event => {
if (event.data.previous.exists()) {
return;
}
const userId = event.params.userId;
var eventSnapshot = event.data;
const regToken = eventSnapshot.child("regToken").val();
Notification details.
const payload = {
notification: {
title: 'You have a new User.',
body: `${userId} is the id.`,
}
};
return admin.messaging().sendToDevice(regToken, payload);
});
您是否收到成功或錯誤響應? –
添加日誌語句並在Firebase控制檯的日誌窗格中查找輸出:'console.log('userId:',userId,'token:',regToken);' –
Firebase日誌輸出說什麼?您可以在Firebase控制檯的「功能 - >日誌」下找到它。 –