web-dev-qa-db-ja.com

Xamarin.AndroidのデフォルトのFirebaseAppはこのプロセスでは初期化されません

Firebaseからトークンを取得する際に問題が発生しました(プッシュ通知)

Default FirebaseApp is not initialized in this process com.ready_apps.Nebka.Business. Make sure to call FirebaseApp.initializeApp(Context) first.

私でさえFirebaseApp.InitializeApp(this);を呼び出しました。多くの場所で

MyApplication(Applicationを拡張する)、onCreate of Activityで、FirebaseInstanceId.Instance?.Token;を呼び出します

11
Mina Fawzy

編集:このバグはXamarin.Firebaseバージョン57.1104.0-beta1で修正されています。

このエラーは、Firebase forXamarinの新しいバージョンに存在するようです。また、最新の安定バージョン42.1021.1を使用して、本日現在このエラーが発生しています。 (エラーは最新のベータビルドにも存在します)。

この問題についてバグレポートが提出されていることがわかりました ここ

バグレポートに記載されているように、Androidプロジェクトの/ objフォルダーと/ binフォルダーの両方を削除するか、Visual Studioでプロジェクトをクリーンアップすると、リソースを更新するまで問題が一時的に修正されます。 Resource.Designer.csファイルを変更します。

恒久的なソリューションが利用可能になる前に、FirebaseとGooglePlay開発者サービスの古いバージョンにダウングレードすることも可能です。たとえば、FirebaseやGoogle Play開発者サービスのバージョン32.961.0では、このエラーは発生しませんでした。

11
nekris

ソリューションを一度クリーンアップして、アプリを再度実行するだけです。

このバグはすでにXamarinに報告されています。 https://bugzilla.xamarin.com/show_bug.cgi?id=56108

このソリューションはコメントスレッドで提供されており、xamarinNuGetパッケージの新しいリリースで修正される可能性があります。

5
Rahul Sonone

私はそれを修正しませんでしたが、デバッグモードでのみこの問題の回避策を見つけました

アクティビティでこのメソッドonCreate()を呼び出しましたトークンをリクエストする必要があります

FirebaseInstanceId.Instance?.Token

これが方法です

private void ConfigureFireBase()
        {

#if DEBUG
            try
            {
            Task.Run(() =>
            {
                var instanceId = FirebaseInstanceId.Instance;
                instanceId?.DeleteInstanceId();
                //Log.Debug("TAG", "{0} {1}", instanceId?.Token?.ToString(), instanceId.GetToken(GetString(Resource.String.gcm_defaultSenderId), Firebase.Messaging.FirebaseMessaging.InstanceIdScope));

            });

             // For debug mode only - will accept the HTTPS certificate of Test/Dev server, as the HTTPS certificate is invalid /not trusted
            ServicePointManager.ServerCertificateValidationCallback += (o, certificate, chain, errors) => true;
            }catch (Exception e)
            {
                Log.Debug("TAG", e.Message);
            }
#endif
        }
0
Mina Fawzy