Я занимаюсь разработкой приложения для Android, в котором у меня есть Activity, OperatorActivity. Он имеет CardNo и LineNo в качестве EditText, и эти значения вставляются в FirebaseDatabase.
Я хочу уведомить каждого пользователя, у которого установлено это приложение, об обновлении с помощью FCM. Я использовал Note.js и создал для этого функцию, но каждый раз возникает ошибка:
TypeError: admin.messaging.sendToTopic is not a function
at exports.sendNotification.functions.database.ref.onWrite.event (/user_code/index.js:18:21)
at cloudFunctionNewSignature (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:105:23)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:135:20)
at /var/tmp/worker/worker.js:733:24
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
Я новичок в функциях, поэтому не могу понять, как решить эту ошибку.
Я уже посмотрел похожие вопросы, но никто не решил мою проблему.
index.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config.firebase);
exports.sendNotification = functions.database.ref("Operator :")
.onWrite(event =>{
var payload = {
notification :{
title : 'Mechanic Needed',
body: 'Any available mechanic report ASAP',
sound: 'defaulf',
badge: '1'
},
topic: 'notification'
};
admin.messaging.sendToTopic('notification',payload)
.then(function(response){
console.log("Successfully sent Message.", response);
return;
})
.catch(function(error){
console.log("Error sending message!", erorr);
})
});
Я подписал всех пользователей на тему «уведомлений» программно.
Так выглядит база данных:
Это фиктивная база данных.
firebase - версия: 4.2.1
npm - версия: 6.4.1
РЕДАКТИРОВАТЬ:
Это работает сейчас.
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config.firebase);
exports.sendNotificationToUsers = functions.database.ref("Operator :")
.onWrite(event =>{
var payload = {
notification: {
title : 'Mechanic Needed',
body: 'Any available mechanic report ASAP',
sound: 'defaulf'
}
};
admin.messaging().sendToTopic('notification',payload)
.then((response) => {
console.log("Successfully sent Message.", response);
return;
})
.catch((error) => {
console.log("Error sending message!", error);
})
});