Firebase Auth возвращает исключение System.NullReference - PullRequest
0 голосов
/ 19 февраля 2020

Я новичок в этом. Когда я пытаюсь создать пользователя с электронной почтой и паролем, он говорит мне, что мой FirebaseAuth имеет значение null и не позволяет мне создать пользователя.

Я инициализирую Firebase через это.

void InitializeFirebase()
        {
            var app = FirebaseApp.InitializeApp(this);

            if (app == null)
            {
                var options = new FirebaseOptions.Builder()
                    .SetApplicationId("")
                    .SetApiKey("")
                    .SetDatabaseUrl("")
                    .SetStorageBucket("")
                    .Build();

                app = FirebaseApp.InitializeApp(this, options);
                database = FirebaseDatabase.GetInstance(app);

                mAuth = FirebaseAuth.Instance;
            }
            else
            {
                database = FirebaseDatabase.GetInstance(app);

                mAuth = FirebaseAuth.Instance;
            }
        }

Я получаю сообщение об ошибке System.NullReferenceException: «Ссылка на объект не установлена ​​для экземпляра объекта». Что всплывает здесь

mAuth.CreateUserWithEmailAndPassword(email, password)
.AddOnSuccessListener(this, TaskCompletionListener)
.AddOnFailureListener(this, TaskCompletionListener);
And registering user here:

void RegisterUser(string email, string password)
        {
            TaskCompletionListener.Success += TaskCompletionListener_Success;
            TaskCompletionListener.Failure += TaskCompletionListener_Failure;

            mAuth.CreateUserWithEmailAndPassword(email, password)
                .AddOnSuccessListener(this, TaskCompletionListener)
                .AddOnFailureListener(this, TaskCompletionListener);
        }

TaskCompletioListener


public class TaskCompletionListener : Java.Lang.Object, IOnSuccessListener, IOnFailureListener
    {
        public EventHandler Success;
        public EventHandler Failure;

        public void OnFailure(Java.Lang.Exception e)
        {
            Failure.Invoke(this, new EventArgs());
        }

        public void OnSuccess(Java.Lang.Object result)
        {
            Success.Invoke(this, new EventArgs());
        }
    }

1 Ответ

0 голосов
/ 22 февраля 2020

Я исправил это, установив пакет NuGet «Xamarin. android .manifestmerger» с NuGet.org: https://www.nuget.org/packages/Xamarin.Android.ManifestMerger/1.0.0-preview03

Вот как это установить: https://docs.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio

И вот где я нашел исправление: https://github.com/xamarin/GooglePlayServicesComponents/issues/216

...