Dans mon Xamarin.Forms a> projet, j'utilise Plugin.FirebaseAuth pour me connecter par numéro de téléphone. Cela fonctionne bien pour le projet iOS, mais pour Android, l'appel VerifyPhoneNumberAsync ()
var activity = CrossCurrentActivity.Current.Activity ?? throw new NullReferenceException("current activity is null");
lance "l'activité actuelle est nulle" à partir de CrossCurrentActivity. .Activity ??
archiver https://github.com/f-miyu/Plugin.FirebaseAuth/blob/master/Plugin.FirebaseAuth.Android/PhoneAuthProviderWrapper.cs
Plugin.CurrentActivity est initialisé (anciennement dans MainActivity.cs mais maintenant dans MainApplication.cs comme recommandé) sans erreur selon les instructions dans https://github.com/jamesmontemagno/CurrentActivityPlugin :
MainActivity.cs OnCreate ():
Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this);
MainApplication.cs OnCreate ():
Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, bundle);
J'obtiens la même erreur nulle lorsque j'appelle VerifyPhoneNumberAsync () quel que soit l'endroit où j'initialise CurrentActivity.
L'ajout de la ligne
await CrossFirebaseAuth.Current.PhoneAuthProvider.VerifyPhoneNumberAsync(CrossFirebaseAuth.Current.Instance, user.PhoneNumber);
dans mon MainActivity.cs ne génère directement aucune erreur.
Y a-t-il autre chose que je pourrais oublier?
Versions de dépendances
3 Réponses :
Au lieu de la méthode init, affectez simplement MainActivity à l'activité actuelle du plugin.
Essayez la solution ci-dessous pour définir l'activité actuelle.
CrossCurrentActivity.Current.Activity = this;
Remplacez par
Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, bundle);
J'ai eu le même problème. J'ai résolu ce problème en appliquant la même solution de travail dans mon cas.
Merci pour le partage! Hélas, cela n'a pas fonctionné dans mon cas, mais j'espère que cela aidera quelqu'un d'autre qui tombe sur ce post.
Si le plugin ne fonctionne pas dans votre projet.
Vous pouvez essayer le code suivant
//current activity var currentActivity= Android.App.Activity; //current context var currentContext = Android.App.Application.Context;
Malheureusement, aucune des solutions suggérées précédemment n'a fonctionné dans mon scénario. Cependant, le problème s'est résolu de lui-même après la mise à niveau de plusieurs dépendances, notamment:
Avez-vous trouvé une solution à cela?
Pour moi, cela a commencé à fonctionner après la mise à niveau vers de nouvelles versions de dépendances.