【问题标题】:Xamarin Android's FirebaseInstanceId.Instance.Token throws error instead of returning FCM tokenXamarin Android 的 FirebaseInstanceId.Instance.Token 抛出错误而不是返回 FCM 令牌
【发布时间】:2018-03-22 13:12:25
【问题描述】:

我正在关注一些关于如何将 Firebase 连接到 Xamarin Android 应用以使用推送通知的教程(见下文)。我的团队已经让它工作了,但是在让 iOS 工作并返回到 Android 推送通知之后,我注意到它有问题。

这是有问题的部分:

    private string GetFirebaseInstanceId()
    {
        FirebaseApp.InitializeApp(this);
        var FCMToken = FirebaseInstanceId.Instance.Token;
        if (string.IsNullOrEmpty(FCMToken))
        {
            return null;
        }
        Log.Debug(Tag, $"FCM Registration Token: {FCMToken}");
        return FCMToken;
    }

尝试获取令牌时,我收到此错误“Java.Lang.IllegalStateException:默认 FirebaseApp 未在此进程 {packageName} 中初始化。请务必先调用 FirebaseApp.initializeApp(Context)。”

这就是我在尝试获取令牌之前添加 FirebaseApp.InitializeApp(this) 的原因,但它没有任何区别。我也尝试在 Spash 活动和 Main 活动中执行此操作,但没有解决问题。

我还确定了 google-services.json 的构建操作是 GoogleServicesJson。

至于我所做的代码更改,以下是我认为可能相关的一些值得注意的更改:

  • 在清单中添加了更多权限,因此地图在从 Play 商店安装后不会显示为空白的灰色矩形。
  • Resource.Designer.cs 发生了变化,所以我签入了。

我检查了包含上述片段的文件的历史记录,它的特定方法没有改变。

这是我遵循的一些教程:

如何正确检索 FCM 注册令牌?

【问题讨论】:

  • 你的AndroidManifest.xml 是什么?
  • @York Shen - MSFT 我添加了使用 Google 原生地图和 Firebase 推送通知的权限。我已经解决了这个问题;请在下面查看我的答案。

标签: c# firebase push-notification xamarin.android firebase-cloud-messaging


【解决方案1】:

令人惊讶的是,我主要不得不撤消我为解决问题所做的一些待定更改,然后清理并构建解决方案。我还在主活动中添加了FirebaseApp.InitializeApp(this)

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多