2017-06-02 43 views
1

我正在開發一個聊天應用程序,並發現了一些關於如何將Firebase實施到Xamarin中的示例。我想我所做的一切,就像在教程,但我收到此錯誤:Xamarin,Android,Firebase:「Defualt FirebaseApp未初始化錯誤」...?

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); 

我發現另一個解決這個在這個論壇上,但他們所做的一切是添加上面的行,它的工作。對我來說,不幸的是沒有。

任何幫助將是真棒:) THANKS

回答

1

好了,這個錯誤很簡單:我在火力控制檯有不同的包名字比我的應用程序。