- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些极端情况,我们正在迁移到 firebase,但我们的数据库很奇怪,我们在顺利过渡时遇到了一些麻烦。我们的表以前是[user-id, device-id]
,后台做一个select * where user-id = foo
,然后循环结果并发送一个推送到每个设备 ID。这些 id 可以是 GCM 或 APNS token ,后端根据格式检查将其发送到哪里。
为了迁移,我们添加了一列:firebase-id。对于我们的 iOS 应用程序,我们可以调用一个方法来获取旧的设备 ID。现在我们正在使用 firebase,我们检索这个旧 token 和新的 firebase token ,然后我们将它们都发送到后端,如果旧 token 已经存在,我们更新行并将新的 firebase token 添加到新列,如果旧 token 是新 token ,我们忽略它并使用 firebase token 创建一个新行。
对于发送,我们更改了代码以查看一行是否具有 firebase id,如果有,我们将推送发送到 firebase,否则我们使用旧方式发送。
这里的想法是继续支持旧 token 的用户,因为有些人可能会在一台设备上更新应用程序,但不会在另一台设备上更新。当一个用户拥有 firebase id 时,我们本可以清除他们的所有旧 token ,但是他们将停止在任何没有更新应用程序的设备上接收通知。我们不能简单地添加一行并保留旧的,因为那样用户会收到两个通知。
我们所做的在 iOS 上运行良好,我们已经准备就绪,一切都在按计划进行。当他们更新时,他们注册一个新的 firebase token 并将其添加到具有当前设备的旧设备 token 的行。
但我现在想为 Android 实现相同的功能,但我似乎无法获得旧 token 。 FCM 指定无法在旧的 GCM SDK 旁边运行,我找不到通过 FCM SDK 检索旧 token 的函数,我们没有将它缓存在任何地方(好吧,在数据库中,但这没有耦合到设备,所以我们不知道要更新哪一行)。我在已经使用 FCM 的应用程序中需要旧 token ,因此我可以同时将两个 token 发送到后端,它可以使用旧 token 更新行。
如何在已经使用 Firebase 的情况下检索旧的 GCM token ?
最佳答案
由于它没有内置到您之前的代码库中,我想不出将 GCM token 与 Firebase 相关联的简单方法。
但是,GCM 和 FCM token 都可以从 FCM 端点发送到设备。假设您对 GCM 和 Firebase 使用相同的项目,您可以利用它。当用户更新到使用 FCM 的应用程序的新版本时,当 token 刷新时,之前的 GCM token 将失效。您可以向 GCM 和 FCM token 发送消息。由于您会收到一个响应,告诉您 token 是否无效,因为当用户更新时 GCM token 会随着时间的推移而失效,因此您可以将它们从数据库中删除。
我意识到这不是一个优雅的解决方案,但它可以工作。
关于android - 不丢失旧 token 的 FCM 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53765988/
我正在尝试使用 Firebase 云消息传递。我将通知从 Node.js 服务器发送到我注册到通知系统的应用程序。 我的问题是,在 Android 5.1 上,即使我在 nofitification
根据FCM documentation如果 FCM 服务器检测到高优先级消息不会导致用户交互的模式,则高优先级消息可能会被取消优先级。该机制的细节未指定。问题: 这究竟是如何工作的? 检测算法如何收集
更新到最新的 Firebase 后,无法获取所选 的 FCM 注册 token fcmSenderId : FirebaseInstanceId .getInstance()
我想在单个 fcm 请求中向多个设备发送通知。我的通知文本对于所有设备都是相同的。我必须同时向所有用户发送超过 10000 条通知,并且文本是相同的,所以我想以最小的 fcm 请求发送所有通知。我正在
// body 就像这样 { "to": "/topics/NEWS" , "data":{ "extra_information": "This is
当我在浏览器中生成 FCM token 时,我还将其发送到我的服务器,服务器使用 firebase 管理模块将其订阅到主题,如下所示: messaging.subscribeToTopic(token
我正在开发一个应用程序,我想通过 php 实现 FCM 推送通知。 所以我制作了两个java文件:1.FirebaseInstanceID(工作正常并在数据库中正确获取 token )2.Fireba
我正在尝试使用 cordova-plugin-firebasex 向我的cordova 应用程序上的特定用户发送通知这是 cordova-plugin-firebase 的一个 fork 修复和改进。
我正在尝试使用以下方法从我的 iOS-Objective-C 应用发送消息: NSInteger iTime = [NSDate timeIntervalSinceReferenceDate]
我正在尝试为 FCM 实现服务器以向 android/iOS 设备发送通知。 我需要向 android 和 iOS 发送纯数据通知,但 iOS 的后台通知似乎非常不稳定。 (即使该应用程序在前台,我也
我对向手机发送通知的选项感到困惑。我在 Azure 上部署了在 .Net core 中创建的后端。现在,当管理员推出新优惠时,必须将推送通知发送到移动设备。我找到了 3 个很好的替代品。所有人都以自己
我用 POST 设置了一个 REST 客户端 --> https://fcm.googleapis.com/fcm/send 内容类型:应用程序/json 授权: key = JSON 正文: {
我在 Flutter 应用程序中使用 firebase_messaging v9.0.1。关于基于 https://pub.dev/packages/firebase_messaging/exampl
当我使用 Firebase 控制台时,通过激活“高级选项”下的“声音”一切都是完美的,正如 Mouad Abdelghafour AitAli 在接受的答案中所解释的那样 Firebase Push
我已经尝试在 Curl 中使用以下命令使用 Firebase REST Api 发送通知并且它有效: curl -X POST --header "Authorization: key=AIza...
即使 ios 也可以从 fcm 控制台获得通知。 Controller 功能 : public function push(Request $request) { $validator = V
对于通过 XMMP 支持上行和下行消息的服务器端实现,我使用 org.jivesoftware.smack.tcp.XMPPTCPConnection。我从 GCM 迁移到 FCM,现在我的应用服务器
这是我的代码: function sendToken(token) { $.ajax({ url: 'https://iid.googleapis.com/iid/v1/' + token
这是我第一次使用 Flutter 测试 FCM。我检查了一些来自 GitHub 的 SO 问题和文档。 我能够发送通知,当应用程序未运行时它们会被发送。 如果应用程序正在运行或在后台,则消息不可见。
我正在尝试在未接收但他们在调试 apk 中发送/接收很好的发布应用程序中发送 FCM 通知(在用户之间发送消息、好友请求等),我有对此进行了搜索,发现一些对我不起作用的解决方案 像这样,我把它放在 p
我是一名优秀的程序员,十分优秀!