【问题标题】:FirebaseInstanceId.Instance is returning nullFirebaseInstanceId.Instance 正在返回 null
【发布时间】:2020-02-17 10:44:38
【问题描述】:

我想在我的 xamarin.android 项目中获取 fcm 令牌。 我正在使用的 Nugets

  <package id="Xamarin.Firebase.Common" version="71.1610.0" targetFramework="monoandroid90" />
  <package id="Xamarin.Firebase.Core" version="71.1601.0" targetFramework="monoandroid90" />
  <package id="Xamarin.Firebase.Iid" version="71.1710.0" targetFramework="monoandroid90" />
  <package id="Xamarin.Firebase.Iid.Interop" version="71.1601.0" targetFramework="monoandroid90" />

获取令牌的代码

FirebaseInstanceId instance = FirebaseInstanceId.Instance;
Android.Gms.Tasks.Task instanceId = instance.GetInstanceId();
instanceId.AddOnSuccessListener(this, this);

FirebaseInstanceId.Instance 始终为空

【问题讨论】:

  • 您是否在项目中添加了 google-services.json 文件?
  • 是的,添加了
  • 首先,请将你的VS版本更新到最新。然后将目标框架设置为 9.0(API 28)。在添加 google-services.json 文件并将其设置为 GoogleServicesJson 构建操作后,需要进行完全清理和重建。
  • 感谢@LeonLu-MSFT,会尝试看看这是否可行,但我的 google-services.json 文件已经具有相同的构建操作。 Crashlytics 工作正常,问题仅在于 firebaseinstanceId
  • 好的,期待你的更新。

标签: visual-studio firebase xamarin xamarin.android firebase-cloud-messaging


【解决方案1】:

你很幸运,因为最近我遇到了同样的问题。我假设您还使用 Xamarin.Firebase.Auth 和所有相关的包。最新版本存在问题,出于某种原因 Xamarin.Firebase.Auth 和 Xamarin.Firebase.Messaging 彼此不喜欢。将两个版本都降级到 60.1142.1(您必须将 GoogleService.Base 降级到较低版本,我会先亲自删除这两个包,然后使用版本 60.1142.1 重新添加它们)。 这解决了我的问题,这在我的 Mac 上的 Xamarin 上奇怪地导致推送通知不起作用,但在 Windows 版本上,实例为空。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    相关资源
    最近更新 更多