android - Xamarin.Forms 和 FCM 实现不起作用

标签 android firebase xamarin.android xamarin.forms firebase-cloud-messaging

我正在使用 Xamarin 和 Xamarin.Forms 开发 Android 应用程序。对于推送通知,我使用 Xamarin.Firebase (v 42.1001.0)。我在这里遵循示例实现:https://github.com/xamarin/GooglePlayServicesComponents/tree/master/firebase-messaging/samples

但是如果我实现这个,我只会得到一个 token ,我不能在 firebase 控制台中使用它。它说,没有注册具有此 token 的设备。但是设备可以订阅主题,主题会在一段时间后出现在控制台中。所以我从 firebase 导入的配置文件一定是正确的。我的 firebase 消息接收器永远不会被调用。如果重新安装应用程序,则只有我的 FirebaseInstanceIdService 的 OnTokenRefresh。

我还将我的开发机器的指纹添加到 firebase 控制台。

最佳答案

我知道问这个问题已经有一段时间了,但我最近遇到了同样的问题。所以我想,不妨分享一下我的发现。

请注意,我使用的是 Visual Studio 2017 Enterprise,虽然我认为这与解决方案没有任何关系,但我认为最好事先提及。截至目前,我已经在 Android 上成功测试了 FCM,因此虽然此解决方案适用于 Xamarin Forms,但我现在仅发布适用于 Android 的解决方案。完成测试后,我将添加适用于 iOS 的解决方案。

您必须在开始之前创建一个 Firebase 项目,因此我建议您引用此链接 Xamarin Documention : FCM

安卓:

创建一个空白的 Xamarin 表单解决方案。打开 Android 项目并添加此 Nuget 包 Xamarin.Firebase.Messaging .这将为您添加所有必要的包。一旦你添加了这个,接下来包括 google-services.json 来自 Firebase 控制台的文件。有关这方面的更多信息,请访问此 link .现在在您的 AndroidManifest 文件中添加以下权限

<permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />

${applicationId} 将替换为您的应用程序包名称。

您可以按照教程 here 中提供的其余步骤进行操作

你应该很好。

关于android - Xamarin.Forms 和 FCM 实现不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43171768/

相关文章:

xamarin - FFImageLoading 将位图加载到 ImageViewAsync 中

java - 如何发送屏幕查看事件,以帮助Firebase预测做出更准确的预测

Android - 覆盖 TalkBack 手势

android - MVVMCross fragment 导航在 4.0 中如何工作?

firebase - 我可以在 Firebase 上管理多少个客户端应用?

firebase - 如果旧数据在 2019 年 10 月之后不可用,那么链接到 Google Analytics 中的 Firebase 项目有什么优势?

xamarin.android - Xamarin Android 资源设计器缺少 ID

android - 如果我想使用蓝牙和 Target SDK 31 但我的最低 SDK 是 23,我需要在 Android 上获得什么权限?

java - Android 中 longblob 的位图

firebase - 可编辑的同步排序顺序