问题标签 [firebase-cloud-messaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2843 浏览

android - Firebase 通知有时会跳过 onMessageReceived 方法

当我使用 Facebook 的 Parse 时,我可以在开发过程中测试通知(即在 Play 商店中没有应用程序)。但现在我正试图在我的应用程序中实现 Firebase。我的应用程序尚未发布。我已经完成了 android 端的实现,并正在尝试从 Firebase 控制台向我的应用发送通知。但我的设备从未收到通知。这是为什么?我的目标是“所有用户”,因为 firebase 没有版本或我的任何主题。

好的

所以我做了一些更多的故障排除,这里是:我的设备正在接收通知,但它这样做很奇怪:

  1. 当应用程序打开并且用户正在与之交互时,通知会通过预期的调用路径onMessageReceived

  2. 当应用程序关闭时(也不是在最近的应用程序中),通知会跳过呼叫onMessageReceived并在状态栏中显示通知。

但是这里是 FireBase 的日志,当onMessageReceived被跳过时

0 投票
3 回答
17078 浏览

android - 通过服务器端代码的 Firebase 通知

新的 Firebase 通知服务允许我们使用控制台 UI 向所有移动应用用户发布通知。

但我找不到 Firebase 通知服务的任何 REST API。我想通过基于事件的服务器端代码自动向移动用户发送通知。Firebase 通知服务是否具有可通过 HTTP/S 访问的 API?

0 投票
1 回答
1654 浏览

network-programming - FCM 适合实时游戏后端吗?

由于 Google 最近对 Firebase 进行了重大更改,他们发布了一项名为Firebase Cloud Messaging或 FCM 的服务。我想知道,这可以作为两个玩家之间实时游戏的后端,作为 TCP 或 UDP 等协议的替代品吗?例如,由游戏服务器控制的多人游戏,其他玩家的位置每秒更新多次。我看到它每个数据包可以传输 4kb 的数据,而且由于它是由 Google 托管的,我认为连接时间肯定会很快;但是,Google 并未将其宣传为游戏后端,而是适合 IM 等应用程序的消息系统。

基本上,我要问的是,与 TCP 和 UDP 等协议相比,FCM 在以下方面如何比较:

  • 可靠性
  • 速度
  • 它可以处理的流量
  • 数据是像 TCP 一样顺序的,还是像 UDP 一样的“随机”顺序?

从长远来看,它能否支持服务器中游戏之间的持续通信?

0 投票
2 回答
4958 浏览

android - Firebase 云消息传递是否依赖于包名称?

我想知道在 Firebase 项目控制台上定义的包名称是否与 Firebase Cloud Message 成功传递密切相关,或者它只是创建 google-services.json 文件的助手。

在 Firebase 控制台上,一旦创建就无法重命名。

就我而言,我在 Firebase 控制台上创建了一个项目,错误地命名为 son .example.firecm 而不是我的 Android Studio 项目中定义的com .example.firecm。

我的 Android 项目没有在 google-services.json 上编译导致拼写差距。

将包名重命名为 com.example.firecm 后,它编译但不确定它是否会接收 Firebase 云消息或不会导致 Android Studio 项目中的 Firebase 控制台项目包定义之间存在差异。

0 投票
12 回答
163442 浏览

android - Firebase FCM 通知 click_action 有效负载

当应用程序在后台时,当用户单击通知时,我正在尝试打开特定活动。从文档中,我知道 click_action 必须添加到有效负载中,并在应用程序中添加一个意图过滤器来处理它。但是,如何通过 Firebase 控制台在 Firebase 通知中添加 click_action?我也对任何其他的 Workaround 持开放态度。提前致谢。

0 投票
1 回答
1941 浏览

firebase - 通过 REST API 取消订阅 Firebase 云消息传递客户端

是否可以通过 REST API 取消订阅移动客户端?我需要它,以便我的应用程序服务器可以取消订阅客户端。

0 投票
12 回答
152303 浏览

c# - 使用 FCM(Firebase 云消息传递)通过 C# 向 Android 发送推送

我正在使用此代码通过 C# 和 GCM 发送通知消息,使用 Winforms、Webforms 等。现在我想发送到 FCM(Firebase 云消息传递)。我应该更新我的代码吗?:

但 GCM 已更改为 FCM。发送通知的代码是否相同?我在哪里可以找到 SERVER_API_KEY?是相同的解决方案吗?

0 投票
3 回答
8598 浏览

android - FireBase 云消息传递是否需要 Play 服务?

FCM 是否需要。用户必须在他的手机上安装播放服务才能接收通知?

您看到 GCM 可以,但现在我计划迁移到 FCM,希望它不会……在测试之前我怎么知道?

0 投票
7 回答
49779 浏览

java - 来自 Java 而不是 Firebase 控制台的 Firebase 云消息传递通知

我是 Firebase 的新手,当我的 Java 应用程序尝试使用客户端的 Firebase 令牌发送通知/消息时,我遇到了错误,例如发件人 ID 不匹配和 HTTP 状态为 401 的身份验证错误。请注意,使用 Firebase 控制台,我可以将消息发送到客户端。

对于客户端应用程序,我执行了以下操作:

  1. 从这里克隆的 Firebasemessaging快速入门应用程序——https: //github.com/firebase/quickstart-android/tree/master/messaging——已经设置了 Firebase 依赖项等。将克隆的应用程序加载到Android Studio.
  2. 使用 Firebase 控制台,创建了一个名为的新项目My Notification Client,并添加了一个应用程序,并使用com.google.firebase.quickstart.fcm它作为 Android 应用程序的包名称。
  3. 将 Android 应用程序的下载google-services.json文件添加到新创建的项目中,并将其复制到messaging/app/文件夹并与Android Studio.
  4. 创建了一个模拟器并从内部运行应用程序Android Studio。当应用程序在模拟器中加载时,单击Log Token按钮以Android MonitorAndroid Studio.
  5. 使用 Firebase 控制台,选择新创建的项目My Notification Client,单击Notifications左侧窗格中的链接,并通过粘贴在上一步中捕获的 Firebase 令牌向设备发送通知。

这很好用!下一步是使用单独的简单 Java 应用程序(最终将成为通知服务器)将通知发送到客户端,而不是使用 Firebase 控制台。

为了做到这一点,我按照这里列出的步骤 - https://firebase.google.com/docs/server/setup#prerequisites。具体来说,这些是我执行的步骤:

  1. My Notification Server在 Firebase 控制台中创建了一个新项目。
  2. 在 Firebase 控制台中使用Settings > Permissions,创建一个新的服务帐户并下载serviceAccountCredentials.json文件。
  3. 在Eclipse中新建一个maven项目,在pom.xml中添加如下依赖:
  1. 然后,我扩展com.google.android.gcm.sender.Sender以创建FCMSender和覆盖受保护的方法getConnection(String url)以使用新的 FCM 端点,如下所示:

    /li>
  2. 我的 Java 应用程序的main()方法如下所示:

    /li>

当我运行 Java 应用程序时,MismatchSenderId出现错误。我尝试使用curl如下所示进行故障排除,但得到了相同的错误:

我没有使用 Firebase 控制台中项目选项卡上Server Key列出的内容,而是尝试使用导致.Project Settings > Cloud MessagingMy Notification ServerProject NumberInvalidRequestException: HTTP Status Code: 401

错误代码的 Firebase 文档说明了以下内容MismatchSenderId

Mismatched Sender 200 +error:MismatchSenderId
一个注册令牌与特定的发件人组绑定。当客户端应用注册 FCM 时,它必须指定允许哪些发件人发送消息。在向客户端应用程序发送消息时,您应该使用其中一个发件人 ID。如果您切换到其他发件人,现有的注册令牌将不起作用。

我无法弄清楚在 Firebase 控制台中的何处/如何配置 Android 应用程序(已添加到My Notification Client项目中)以能够接收消息。

对此的任何帮助,将不胜感激!

0 投票
6 回答
110589 浏览

firebase - Firebase 消息传递,在哪里获取服务器密钥?

Firebase 允许我们通过自己的应用程序发出POST请求来发送通知消息。

本教程向我们说明如何提出此请求。但是,标题中有一个Authorization字段,我必须在其中放置自己的服务器密钥。

我在哪里可以得到这个服务器密钥?没有这方面的说明。