【问题标题】:Xamarin, Android, Firebase: "Defualt FirebaseApp is not initialized error"... ?Xamarin、Android、Firebase:“Defualt FirebaseApp 未初始化错误”...?
【发布时间】:2017-06-02 19:35:21
【问题描述】:

我正在开发一个聊天应用程序,并找到了一些关于如何在 Xamarin 中实现 Firebase 的示例。我想我已经完成了教程中的所有操作,但是我收到了这个错误:

Java.Lang.IllegalStateException: Default FirebaseApp is not initialized in this process XamarinChatApp.XamarinChatApp. Make sure to call FirebaseApp.initializeApp(Context) first.

所以,我所做的只是在错误发生之前添加这行代码:

    Firebase.FirebaseApp.InitializeApp(this);

然而,这并没有改变任何东西。

这是完整的主要活动:

    public class MainActivity : AppCompatActivity,IValueEventListener
    {
        private FirebaseClient firebase;
        private List<MessageContent> lstMessage = new List<MessageContent>();
        private ListView lstChat;
        private EditText edtChat;
        private FloatingActionButton fab;

        public int MyResultCode = 1;


        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(GetString(Resource.String.firebase_database_url));
            Firebase.FirebaseApp.InitializeApp(this);
            FirebaseDatabase.Instance.GetReference("chats").AddValueEventListener(this);

            fab = FindViewById<FloatingActionButton>(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;
            }
        }
    }

问题发生在 OnCreate 中,就在:

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

我在这个论坛上找到了另一个解决方案,但他们所做的只是添加了上面的行并且它起作用了。对我来说,不幸的是没有。

任何帮助都会很棒:) 谢谢

【问题讨论】:

    标签: android firebase xamarin


    【解决方案1】:

    好的,错误很简单:我在 Firebase 控制台中的包名称与在我的应用程序中不同。

    【讨论】:

      猜你喜欢
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      • 2017-03-02
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多