2017-06-02 7 views
1

私はチャットアプリを開発中で、XamarinにFirebaseを実装する方法のいくつかの例が見つかりました。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); 

しかし、これは何も変わりませんでした。

これは完全に主な活動です:私はこのフォーラムにこれに対する別の解決策を発見したが、彼らがしたすべてだった

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

:問題は右に、OnCreateイベントで起こる

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

上記の行を追加するとうまくいきました。私にとっては、残念ながらそうではありません。

すべてのヘルプは素晴らしいだろう:) THANKS

答えて

1

オーケー、間違いは簡単だった:私は私のアプリに比べfirebaseコンソールに別のパッケージ名を持っていました。

関連する問題