Xamarin、Firebase:“Default FirebaseApp is not initialized in this process”--尽管调用了initializeApp()?

owfi6suc  于 2023-09-28  发布在  其他
关注(0)|答案(6)|浏览(206)

我开始为这条线疯狂:
Java.Lang.IllegalStateException:默认FirebaseApp未在此进程com.TalkAboutTv.TalkAboutTv中初始化。确保首先调用FirebaseApp.initializeApp(Context)。
我不知道是什么引起的。我正在调用FirebaseApp.IntApp(this),而我的包名与.为什么不管用?

protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
    base.OnActivityResult(requestCode, resultCode, data);
}


protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);
    SetContentView (Resource.Layout.Main);

    firebase = new FirebaseClient("2131099704");
    Firebase.FirebaseApp.InitializeApp(this);

    FirebaseDatabase.Instance.GetReference("chats").AddValueEventListener(this);

    fab = FindViewById<Button>(Resource.Id.fab);
    edtChat = FindViewById<EditText>(Resource.Id.input);
    lstChat = FindViewById<ListView>(Resource.Id.list_of_messages);

    fab.Click += delegate
    {

        PostMessage();
    };


    if (FirebaseAuth.Instance.CurrentUser == null)
        StartActivityForResult(new Android.Content.Intent(this, typeof(SignIn)), MyResultCode);
    else
    {
        Toast.MakeText(this, "Welcome " + FirebaseAuth.Instance.CurrentUser.Email, ToastLength.Short).Show();
        DisplayChatMessage();
    }
}

private async void PostMessage()
{
    var items = await firebase.Child("chats").PostAsync(new MessageContent(FirebaseAuth.Instance.CurrentUser.Email, edtChat.Text));
    edtChat.Text = "";
}

public void OnCancelled(DatabaseError error)
{

}

public void OnDataChange(DataSnapshot snapshot)
{
    DisplayChatMessage();
}

private async void DisplayChatMessage()
{
    lstMessage.Clear();
    var items = await firebase.Child("chats")
        .OnceAsync<MessageContent>();

    foreach (var item in items)
        lstMessage.Add(item.Object);
    ListViewAdapter adapter = new ListViewAdapter(this, lstMessage);
    lstChat.Adapter = adapter;
    }
}

}

dy1byipe

dy1byipe1#

尝试在Application类中初始化firebase(OnCreate方法)。但是首先从项目控制台下载google-services.json文件,并确保它具有“GoogleServicesJson”值作为BuildAction。

chhkpiq4

chhkpiq42#

有一件事你不需要再做了,那就是从你的MainActivity.OnCreate()方法调用FirebaseApp.initializeApp(this)。如果您正在执行此操作,则可能应该删除该调用,因为它是不必要的,并且可能会导致下游并发症。
我尝试删除binobj文件夹,我确保我的google-services.json具有正确的GoogleServicesJson构建类型,并且在我的fsproj(或csproj,如果您仍在使用C#)文件中正确拾取构建类型。然而,错误仍在发生。
我做错了什么是我有一个错字在我的包名称。如果您已经执行了上面的所有步骤,请检查google-services.json文件中的package_name字段,并确保它与项目的软件包名称完全对应。* 然后 * 清理并重建您的项目。

cunj1qz1

cunj1qz13#

我正在启动一个新的应用程序,但没有启用Internet权限。这解决了我的问题

pu82cl6c

pu82cl6c4#

如果以上都没有为你工作。检查项目设置。在'AndroidManifest.xml'中添加或验证您具有以下内容。内部应用程序<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" /> <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name="${id app from firebase console }" /> </intent-filter> </receiver>

9cbw7uwe

9cbw7uwe5#

当我更改指向一个新的Firebase数据库的.json文件的内容时,出现了这个错误。
我清理了项目并重新构建了它,它工作了。

dsekswqp

dsekswqp6#

我今天遇到了这个问题,你需要避免在你的Firebase项目中有超过1个应用程序,作为一个周转,一定要选择“GoogleServiceJson”来生成你的google-service.json

相关问题