我正在开发一个Android应用程序,其中有一个Activity(操作员)ActivityActivity。它具有CardNo和LineNo作为EditText,并且该值已插入FirebaseDatabase。
我要做的是使用FCM通知安装此应用程序的每个用户更新。我使用Note.js并为此创建了一个函数,但是每次都会出现错误:
public class MyClass {
List<Label> labels = new ArrayList<>();
.... other code
Label charname = new Label(shell, SWT.NONE);
...
// Save in the list
labels.add(charname);
.....
// Access old label
int index = ... index of label required
Label oldLabel = labels.get(index);
}
我是函数的新手,所以我不明白如何解决此错误。 我已经看过类似的问题,但没有一个解决我的问题。
index.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)
我以编程方式为所有用户订阅了“通知”主题。
这是数据库的外观: 这是一个虚拟数据库。
firebase --version:4.2.1
npm --version:6.4.1
编辑: 现在正在工作。
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);
})
});
答案 0 :(得分:1)
代替此:
admin.messaging
您需要使用它(API文档中的说明it's a function to call):
admin.messaging()
See also the documentation for sending to a topic.。它显示了相同的用法。