打开特定活动,同时点击通过 Firebase 云函数触发的通知



我有一个使用Firebase作为后端的Android应用程序。

使用Firebase 云功能一旦数据库在特定节点发生更改,就会触发通知。

但是我无法弄清楚如何根据特定节点的变化打开特定活动。

我在数据库中有 5 个活动和 5 个节点,应该通过通知打开的活动应该是与特定节点的变化相对应的活动。

但现在它会打开默认活动。

我无法弄清楚通知将如何包含在其有效负载中打开特定活动的信息,因为通知是通过 Firebase 云函数传递的。

index.js 的示例文件粘贴在下面,仅用于一个子节点中的更改。

'use strict';
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendPowerNotification = functions.database.ref("/Matrimony").onWrite((event) => {
const data = event.data;
console.log('New Issue added');
if (!data.changed()) {
return;
}
const status = data.val();
//const onOff =  status ? "on": "off";
const author = event.params.author;
const name = author.val();
const payload = {
notification: {
title: 'SahuSmaj : New Matrimony Post',
body: `New biodata entered,check it out`,
sound: "default"
click_action: "MATRIMONY"
}
};
const options = {
priority: "high",
timeToLive: 60 * 60 * 24 //24 hours
};
console.log('Sending notifications');
return admin.messaging().sendToTopic("matrimony", payload, options);
});

执行上面的代码显示此错误:

Error: Error occurred while parsing your function triggers.
/private/var/folders/sf/2spqs2n1493d506bj06wj0zw0000gn/T/fbfn_1018VUGx2TTMO1y8/index.js:33
click_action : "MATRIMONY"
^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at Object.exports.runInThisContext (vm.js:76:16)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:16:9)
at Module._compile (module.js:570:32)

我已经在我的AndroidManifest中进行了更改.xml以便使用Android过滤器打开特定通知。

<intent-filter>
<action android:name="MATRIMONY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

您在payload中缺少逗号 (,),在sound: "default"之后

const payload = {
notification: {
title: 'SahuSmaj : New Matrimony Post',
body: `New biodata entered,check it out`,
sound: "default"
click_action: "MATRIMONY"
}
};

它应该是:

const payload = {
notification: {
title: 'SahuSmaj : New Matrimony Post',
body: `New biodata entered,check it out`,
sound: "default",
click_action: "MATRIMONY"
}
};

相关内容

  • 没有找到相关文章

最新更新