当前位置: 首页 > 知识库问答 >
问题:

Firebase推送通知-默认FirebaseApp在此过程中未初始化

上官淮晨
2023-03-14

我正在努力在一个成熟的MVVMcross应用程序中实现谷歌的Firebase推送通知。我们被迫寻求一个新的解决方案,我们目前的一个,因为它似乎在AppCenter的功能即将被否决。

我们已经将代码放在RootActivity文件中(在方法的底部)

protected override void OnCreate(Bundle bundle)

当我在我的Android Galaxy上的USB/Debug场景中运行该应用程序时,我得到当前错误“默认FirebaseApp未在此过程中初始化”

我试图使用错误消息中推荐的方法,但没有成功:

FirebaseApp.InitializeApp(RootActivity.Context);
FirebaseMessaging.Instance.GetToken().AddOnCompleteListener(new OnCompleteListener());
        

如果有人想知道,上面提到的方法的代码是为了使用断点进行测试而设置的:

public class OnCompleteListener : Java.Lang.Object, IOnCompleteListener
        {
            public void OnComplete(Android.Gms.Tasks.Task task)
            {
                var token = task.Result.ToString();
            }
        }

我们最初在一个标准的Xamarin Forms Android应用程序中进行了测试,在获得令牌时没有任何问题,但在客户机的MVVMcross应用程序中使用它时,我们遇到了问题。

我还想提到,我也没有运气地尝试过以下解决办法:

var setupSingleton = MvxAndroidSetupSingleton.EnsureSingletonAvailable(Context);
setupSingleton.EnsureInitialized();
FirebaseMessaging.Instance.GetToken().AddOnCompleteListener(new OnCompleteListener());
        

共有1个答案

奚飞星
2023-03-14

我发现我有两个问题。第一个是我的项目名称在我的清单和谷歌服务密钥中不匹配。我用的是我自己设置的测试密钥。在我意识到这一点后,我切换回我客户的密钥,并再次检查它是否是构建的一部分。一旦解决了这个问题,我就发现需要为xamarin.google.dagger安装nuget包来解决反射问题。在处理完这些之后,我做了一个清理/重建,并在我的Galaxy S20测试设备上运行了调试。这个修正使我能够达到我为测试从FCM接收令牌而设置的测试断点。

 类似资料: