java - 向另一台设备发送通知

标签 java android firebase firebase-realtime-database notifications

我希望能够向 Android 上的另一台设备发送通知。目前,在我的应用程序上,用户可以上传他们想要做的工作,其他用户可以对该工作进行出价。然后用户可以接受出价。当用户接受出价时,需要向出价的用户发送通知或消息。我使用的数据库是 Firebase。每个用户都有一个用于登录的帐户和一个唯一的 ID。

我发现的唯一事情就是向我自己的设备发送通知。

最佳答案

使用 Firebase 实现自定义通知非常简单。出价后,将用户的 token 和消息写入 firebase 的节点中

notificationRef.push.setValue(new NotificationModel("bid accepted", firebaseUser().getToken()))

现在要发送通知,我们将使用 firebase 函数

<小时/>

安装Node.js

使用节点安装 firebase

npm install -g firebase-tools

导入Firebase

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

然后当firebase中的通知节点写入时发送通知

exports.bidNotification = functions.database.ref('/notification/{pushId}').onWrite((event) => {

    const data = event.data;
    console.log('Notification received');

    if(!data.changed()){
        console.log('Nothing changed');
        return;
    }

    const payLoad = {
        notification:{
            title: 'App name',
            body: data.val().message,
            sound: "default"
        }
    };

    const options = {
        priority: "high",
        timeToLive: 60*60
    };

    return admin.messaging().sendToDevice(data.val().token, payLoad, options);


});

最后,使用 CLI 在 firebase 上部署您的函数 这里有更多:https://firebase.google.com/docs/functions/get-started

享受

关于java - 向另一台设备发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49381722/

相关文章:

java - 设置不同域中定义的域类的值

java - 如何使用 ExtractorMediaSource.Factory 在 ExoPlayer 中设置自定义 header ?

node.js - 删除磁盘后使用 npm 安装 firebase 时出错

javascript - GoogleAuthProvider 在 Web 应用程序中给出错误 "this.ta is not a function"

Android SDK Mediaplayer.create 随机返回null

javascript - 与 firebase react native 平面列表

java - 为什么 Sybase 不使用功能索引?

java - rxtx com 端口

java - 如何使用 Builder 模式将 Parcelable 实现到一个类

android - 为什么我的 opengl 输出因各种设备而异?