android - 发送推送通知时,firebase 是否自行管理设备 token 、bundle id 等用户数据,还是我们必须管理这些数据?

标签 android ios firebase firebase-cloud-messaging

我以前使用 parse 发送推送通知,但现在我们需要切换到其他服务提供商。我正在考虑使用 firebase,因为我唯一的要求是在 IOS 和 Android 上发送推送通知,而 firebase 似乎接近我的要求。

我正在搜索 firebase 提供的任何设施来管理用户的数据,如他们的设备 ID 和他们有权使用的 bundle 。所以,当我必须广播通知时,firebase 是否会根据 userid(或类似的东西)检索适当的包,反之亦然(正如 parse 所做的那样)?还是我需要管理这些数据并在发送通知之前获取适当的设备 ID?

请帮忙

最佳答案

您在服务器上真正需要的只是您的服务器 API key 和适当的 InstanceID(由每个设备生成以单独寻址)。如果您想为特定设备定制通知,您确实需要存储 InstanceID,但还有一种机制可以发送分段和主题通知,不需要您存储单个 InstanceID。

对于 FCM,您只需向其 API 端点发出 HTTP POST 请求,在授权 header 中提供您的服务器 API key 和 InstanceID( token );通知标题;通知文本;以及请求正文中的任何其他参数。

很容易用 Postman 进行测试或 FireBase console他们还有 Node.js 和 Java libraries你可以在你的服务器上使用。这是backwards compatible with GCM and Amazon SNS因此您也可以根据需要使用它。

对于 Android,您只需制作一些小的 updates在你的 gradle 构建配置中,包括你从谷歌为你的应用程序下载的 google-services.json 文件和 extend a few classesFirebaseInstanceIdServiceFirebaseMessagingService

注意:如果您在 Android 上使用 Dagger2 进行依赖注入(inject),则存在一个小的不兼容性,可以通过遵循 these instructions 轻松解决。 .

关于android - 发送推送通知时,firebase 是否自行管理设备 token 、bundle id 等用户数据,还是我们必须管理这些数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38611592/

相关文章:

node.js - 执行耗时 60006 毫秒,完成状态为 : 'timeout'

android - 如何在 ImageView 顶部显示指示器气泡?

java - 为什么我的 "posts"在 android recyclerview 中以不同的大小加载?

ios - Firebase AB 测试有 0 个用户

ios - 一旦 NSTimer 停止在 objective-c 中关闭我的 View Controller

ios - NSURLSession 失效并取消 : Bad Access

java - 如何在 Firestore 中进行批量更新

android - 如何使用 appium 在 android 上自动化浏览器?

android - Android 上的 Kotlin : map a cursor to a list

ios - 使用相似的输入字段实现许多相似的 View