Java .Lang.NullPointerException: попытка вызвать виртуальный метод void com.google.firebase.auth.FirebaseAuth.zza - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь реализовать Authenticate with Firebase на Android, используя номер телефона, следуя официальной документации Google на Xamarin Android. Но я получаю эту ошибку:

Java.Lang.NullPointerException: 'Attempt to invoke virtual method 'void com.google.firebase.auth.FirebaseAuth.zza(java.lang.String, long, java.util.concurrent.TimeUnit, com.google.firebase.auth.PhoneAuthProvider$OnVerificationStateChangedCallbacks, android.app.Activity, java.util.concurrent.Executor, boolean)' on a null object reference'

Я создал Android студийный проект, и я не получил ошибку при отправке смс. Я должен был опубликовать sh приложение вчера, но я застрял здесь.

Примечание : у меня уже есть ссылка на Xamarin.GooglePlayServices.Base, Xamarin.Firebase.Auth:71.1605.0 и у меня есть код с pu sh уведомлением FCM, которое работает нормально.

Вот мой MainActivity.OnCreate код:

        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(savedInstanceState);

        Xamarin.Essentials.Platform.Init(this, savedInstanceState);
        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
        LoadApplication(new App());

        Xamarin.FormsMaps.Init(this, savedInstanceState);

        FirebaseApp firebaseApp = FirebaseApp.InitializeApp(this);

        var firebaseAuthInstance = FirebaseAuth.GetInstance(firebaseApp);

        if(firebaseAuthInstance == null)
        {
            firebaseAuthInstance = new FirebaseAuth(firebaseApp);
        }

        verificationStateChangedCallbacks = new VerificationStateChangedCallbacks(); //This class is below.

        PhoneAuthProvider.Instance.VerifyPhoneNumber("+16505559999", 60, TimeUnit.Seconds, this //The activity, verificationStateChangedCallbacks); // I got the error here

Класс VerificationStateChangedCallbacks:

public class VerificationStateChangedCallbacks : OnVerificationStateChangedCallbacks
    {
        public override void OnVerificationCompleted(PhoneAuthCredential p0)
        {
        }

        public override void OnVerificationFailed(FirebaseException p0)
        {
        }

        public override void OnCodeSent(string p0, ForceResendingToken p1)
        {
            base.OnCodeSent(p0, p1);
        }
    }

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Я только что исправил это, изменив

PhoneAuthProvider.Instance .VerifyPhoneNumber("+16505559999", 60, TimeUnit.Seconds, this, verificationStateChangedCallbacks);

на

PhoneAuthProvider.GetInstance (firebaseAuthInstance) .VerifyPhoneNumber("+16505559999", 60, TimeUnit.Seconds, this, verificationStateChangedCallbacks);

2 дня, и я не думал об этом.

0 голосов
/ 29 апреля 2020

вы можете проверить, является ли "PhoneAuthProvider.Instance" нулевым объектом. Если да, проверьте ваш файл "google-services. json". Обычно «FirebaseAuth.GetInstance (firebaseApp)» не возвращает ноль.

...