【问题标题】:Device-Device communication in react native app based on firebase基于Firebase的React Native App中的设备-设备通信
【发布时间】:2021-03-02 13:57:44
【问题描述】:

我刚刚开始学习 react-native 并考虑将 firebase 集成到其中。现在考虑我的问题场景:

有两个用户 A 和 B 在他们的设备上运行了 react 应用程序(他们都不是管理员)。现在我研究了当我们将我们的 React Native 应用程序连接到 Firebase 时,在设备上运行的应用程序的每个实例都会获得一个唯一的令牌,并且该令牌存储在 Firebase 本身中。

现在假设用户 A 想向用户 B 发送“通知或消息”。现在看一下我在 firebase 官网上看到的以下代码:

// This registration token comes from the client FCM SDKs.
var registrationToken = 'YOUR_REGISTRATION_TOKEN';

var message = {
  data: {
    score: '850',
    time: '2:45'
  },
  token: registrationToken
};

// Send a message to the device corresponding to the provided
// registration token.
admin.messaging().send(message)
  .then((response) => {
    // Response is a message ID string.
    console.log('Successfully sent message:', response);
  })
  .catch((error) => {
    console.log('Error sending message:', error);
  });

这个方法看起来很简单,但是真的有什么方法可以让用户A像这样知道用户B的唯一令牌吗:

const token= firebase.getToken('B');

然后在上面的代码中使用这个令牌向用户B发送通知。使用firebase可以做到吗?

谢谢。

【问题讨论】:

    标签: android firebase react-native push-notification firebase-cloud-messaging


    【解决方案1】:

    您找到的代码使用 Firebase Admin SDK 发送消息。此 SDK 授予其用户对 Firebase 项目的完全管理权限,因此只能在受信任的环境中使用,例如您的开发机器、您控制的服务器或 Cloud Functions。它不能在您发送给用户的应用中使用。

    您将需要一个受信任的环境来将消息发送给用户。有关这方面的更多信息,请参阅:

    【讨论】:

    • 感谢上帝,有人回答了这个问题。现在考虑另一个场景:假设我是一个 React Native 应用程序的管理员,该应用程序由 10 个 A、B...J 用户运行。假设管理员(我)想向用户 C 发送通知,那么我将如何获取用户 C 的令牌,以便我可以使用我共享的上述代码向他发送通知?有没有类似的函数:``` const token= firebase.getToken('C'); ```。这可以给我任何特定用户的令牌。 Firebase 文档对此并不清楚。
    • 我对 FCM 有一些误解。我的一位朋友告诉我,FCM 仅适用于推送通知,绝不使用它一个用户可以向另一个用户发送通知。只有管​​理员可以使用它。是真的吗?
    • 您可以让一个用户通过调用您定义的服务器端 API 向另一个用户发送推送通知。然后,在该服务器端代码中,您可以控制他们可以向哪些用户发送哪些消息。
    • 那很好,但假设我是您正在运行的应用程序的管理员(我有 admin SDK),我将如何找到您的唯一令牌以便将通知推送到您的设备?那是我在任何地方都找不到的,甚至在文档中也找不到。我已经搜索了一整天。
    • 您需要创建一个令牌注册表(通常是数据库中的一个表,您可以在其中将令牌与用户或您使用的任何其他定位方法相关联)。这就是这里的代码 sn-ps 中的sendRegistrationToServer 方法应该做的:firebase.google.com/docs/cloud-messaging/android/…
    猜你喜欢
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多