Можете ли вы использовать Firebase Auth и Firebase Analytics в одном проекте Xamarin.IOS? - PullRequest
0 голосов
/ 15 апреля 2019

Я работаю над приложением Xamarin.Forms с интеграцией Firebase Auth.Я настроил Dependency Service для Android и iOS, чтобы при появлении запроса создать нового пользователя.Зависимость Android работает нормально, но всякий раз, когда я вызываю какой-либо метод 'Auth' в моей зависимости от iOS, приложение запускается при запуске, и в моем файле делегата выдается следующая ошибка из строки "Firebase.Core.App.Configure ()":

Foundation.MonoTouchException сгенерировано

Сгенерировано исключение Objective-C.Имя: NSInvalidArgumentException Причина: - [FIRApp setGetTokenImplementation:]: нераспознанный селектор отправлен в экземпляр 0x282d3d1a0

..., за которым следует трассировка стека длиной в милю

Мой текущий код зависимости iOS -ниже:

using System;
using Xamarin.Forms;
using ActNearMe; //name of my app
using Firebase.Auth;
using Firebase.InstanceID;
using Firebase.Core;
using System.Collections.Specialized;
using System.Net;
using System.Threading.Tasks;

[assembly: Dependency(typeof(IFirebaseInterface))]
namespace ActNearMe.iOS
{
    public class FirebaseInterface : IFirebaseInterface
    {
    WebClient client = new WebClient();
    NameValueCollection sendingData;

    public void CreateNewUser(string email, string password, NameValueCollection userData)
    {
        //sendingData = userData;

        //Anytime I call anything with Auth here, the app won't even load.
        Console.WriteLine(Auth.CurrentVersion);


        //Auth.DefaultInstance.CreateUser(email, password,(authResult, error) => { 

        /*client.UploadValuesCompleted += (sender, e) =>
        {

            Console.WriteLine("it's done!");


        };
        client.UploadValuesAsync(new Uri("http://www.cvx4u.com/anm_web_services/create_user.php"), sendingData);
        */

       //});

    }




    }

}

Вот мой журнал ошибок:

2019-04-15 10:18:53.724 ActNearMe.iOS[6964:1670900] +[FIRApp    registerAsConfigurable:]: unrecognized selector sent to class 0x1060d1bb8
2019-04-15 10:18:53.724 ActNearMe.iOS[6964:1670900] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[FIRApp registerAsConfigurable:]: unrecognized selector sent to class 0x1060d1bb8'
*** First throw call stack:
(0x22401c518 0x2231f79f8 0x223f3e2c4 0x224021d60 0x2240239fc 0x2231f9ffc 0x2231fbe54 0x106626390 0x106638314 0x106637370 0x10663742c 0x1066266d8 0x10662b2a0 0x106625044)
libc++abi.dylib: terminating with uncaught exception of type NSException
Application 'com.russjowell.actnearme' terminated.
Launched application 'com.russjowell.actnearme' on 'iPhone (2)' with pid 6964

ОБНОВЛЕНИЕ Так что я играл с включением и выключением, пропуская определенные строкикода и тому подобное.Я также использую Firebase Analytics с моим приложением, и когда я удаляю пакет Firebase iOS NuGet Analytics из моего проекта Xamarin.iOS, все работает нормально, но когда вы используете оба пакета - Analytics и Auth вместе, сбой возобновляется.Поэтому я предполагаю, что мой новый вопрос: возможно ли использовать Firebase iOS Auth и Firebase iOS Analytics в одном проекте?Любое понимание будет полезно.

Ответы [ 2 ]

0 голосов
/ 16 июня 2019

Проблема связана с пакетами NuGet.

Этот внутренний метод существует в v5.1.8, но отсутствует в v5.2.0.

На данный момент, пожалуйста, понизьте до 5.1.8

https://github.com/xamarin/GoogleApisForiOSComponents/issues/245

0 голосов
/ 15 апреля 2019

Ошибка указывает, что объект, который должен был обработать сообщение, был удален.

Это потенциально проблема с привязками или способом, которым был предоставлен обратный вызов для Firebase.

Невозможно диагностировать проблему только из имеющегося у вас фрагмента, поэтому быстрое решение состоит в следующем:

Независимо от того, какой объект передает объект C # в Firebase, вероятно, его необходимо хранить настатическая глобальная переменная.Это гарантирует, что он не будет утилизирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...