Flutter:关于数据更改的 Firebase 推送通知

2023-12-20

收到评论后,我已将以下代码部署到我的 firebase 项目中,并且已成功部署!但没有向我发送任何通知。 请在此处查看我的 Firebase 实时数据库屏幕截图,以便更好地理解。

[现已解决:它将仅向一个 ID(即我的管理设备)发送通知]

工作代码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firbase);
exports.codeformypeople = functions.database.ref('items/{id}').onWrite(evt => {

const payload = {
notification: { title: 'New Customer Requested', body: 'Touch to Open The App', badge: '1', sound: 'default', }
};
const token ="Lsn-bHfBWC6igTfWQ1-h7GoFMxaDWayKIpWCrzC";//replace with ur token

if (token) {
console.log('Toke is availabel .');
return admin.messaging().sendToDevice(token, payload);
} else {
console.log('token error');
}
});

[Mydatabase Structure[1]

看到这个视频链接 https://www.youtube.com/watch?v=HfSxWshEzUM更多细节

注意:如果您的应用程序已打开并最小化,那么它将显示通知,但如果应用程序已打开并且您正在使用,或者如果应用程序被终止强制关闭,那么它将无法工作!


您可以使用firebase云功能来触发通知。这是我用来触发通知的云函数片段:

const functions = require('firebase-functions');

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

exports.pushNotification = functions.database.ref('/Notifications/{pushId}')
 .onWrite(( change,context) => {
    console.log("Push Notification event triggered");
    var request = change.after.val();
    var payload = {
        data:{
            username: request.userName,
        }
    };
    admin.messaging().sendToDevice(request.userTokenId, payload)
    .then(function(response){
        console.log("Successfully sent message: ",response);
        console.log(response.results[0].error);
    })
    .catch(function(error){
        console.log("Error sending message: ", error)
    })
 })

下面我提供了我的通知结构,您可以在下面看到。如果有任何新数据被推送到数据库通知节点,此函数将触发。要查看触发此功能时收到的输出/错误,请转到 firebase 管理面板 > 功能 > 日志。

您已经完美部署了功能代码,但是您忘记在数据库中添加刷新 tokenId,如上图所示,我正在保存userTokenId在我的数据库和函数中admin.messaging().sendToDevice(request.userTokenId, payload)我正在使用该 tokenId,此 tokenId 用于向特定设备发送通知,您可以使用以下方式获取此 tokenIdFirebaseInstanceId.getInstance().getToken()并将其保存在您的fbproject1 > items数据库结构。请参考this https://firebase.google.com/docs/cloud-messaging/android/client & this https://github.com/flutter/plugins/blob/master/packages/firebase_messaging/android/src/main/java/io/flutter/plugins/firebasemessaging/FlutterFirebaseInstanceIDService.java

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter:关于数据更改的 Firebase 推送通知 的相关文章