Xamarin,Firebase:“默认 FirebaseApp 在此过程中未初始化” - 尽管调用了initializeApp()?

use*_*509 6 android firebase xamarin

我开始对这句话感到疯狂:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

}

alb*_*oli 8

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


Rob*_*don 5

您不需要再做的一件事是FirebaseApp.initializeApp(this)从您的MainActivity.OnCreate()方法中调用。如果您这样做,您可能应该删除该调用,因为它是不必要的,并且可能会导致下游并发症。

我尝试删除bin和obj文件夹,确保我的构建类型google-services.json正确,并且在我的(或者如果您仍在使用 C#)文件GoogleServicesJson中正确选择了构建类型。然而错误仍然发生。fsprojcsproj

我做错的是我的包名称有一个拼写错误。如果您已执行上述所有步骤,请检查文件package_name中的字段google-services.json,并确保它与项目的包名称完全对应。然后清理并重建您的项目。