首页 > 解决方案 > 使用 FCM 和 React Native 向所有用户发送远程通知

问题描述

我正在使用react-native-push-notificationsnpm 包将本地通知传递给用户。由于本地通知只会影响一个用户,所以我必须为所有用户使用远程通知服务。但是我已经阅读了指南,其中大多数都告诉我们必须登录到 FCM 控制台并从那里发送通知。

但是,在我的应用程序的上下文中,我试图以编程方式从应用程序向所有安装了该应用程序的用户发送通知。是否可以react-native-push-notification在不直接从 FCM 发送的情况下发送给所有用户?

本地通知的当前代码

 const localNotification = () => {
  PushNotification.localNotification({
    autoCancel: true,
    largeIcon: "ic_launcher",
    smallIcon: "ic_notification",
    bigText: "Hi, user. You have a new order",
    color: "green",
    vibrate: true,
    vibration: 300,
    title: "New Order",
    message: "Received a new order",
    playSound: true,
    soundName: 'default',
    actions: '["Accept", "Reject"]',
  });
 };

此通知仅影响一位用户。由于无法每次都登录 FCM 并发送通知,因此我如何向所有用户发送相同的信息。

标签: javascriptreactjsreact-nativefirebase-cloud-messaging

解决方案


没有安全的方法可以直接从您的应用程序向其他用户发送消息,更不用说向所有其他用户发送消息了。如果可能的话,任何人都可以向您应用程序的任何用户发送任何消息,这将是一个巨大的安全风险。

因此,必须从受信任的环境(例如 Firebase 控制台、您控制的服务器或 Cloud Functions)用户发送消息。有关更多信息,请参阅如何使用 Firebase 消息传递一对一消息

没有公共 API 可以向所有安装了该应用程序的用户发送消息。这样做的唯一内置选项是通过 Firebase 控制台。在代码中模拟此功能的最简单方法是为所有设备订阅特定主题(例如/topics/all)。有关这方面的更多信息,请参阅:如何通过 CURL 向所有设备发送 Firebase 通知?FCM(Firebase 云消息传递)如何发送到所有电话?


推荐阅读