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;
を呼び出します
編集:このバグは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では、このエラーは発生しませんでした。
ソリューションを一度クリーンアップして、アプリを再度実行するだけです。
このバグはすでにXamarinに報告されています。 https://bugzilla.xamarin.com/show_bug.cgi?id=56108
このソリューションはコメントスレッドで提供されており、xamarinNuGetパッケージの新しいリリースで修正される可能性があります。
私はそれを修正しませんでしたが、デバッグモードでのみこの問題の回避策を見つけました
アクティビティでこのメソッド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
}