您可以在同一个Xamarin.IOS项目中使用Firebase Auth和Firebase Analytics吗?

时间:2019-04-15 13:54:15

标签: firebase xamarin xamarin.ios firebase-authentication

我正在与Firebase Auth集成的Xamarin.Forms应用程序上工作。我已经为Android和iOS设置了依赖服务,以便在出现提示时创建新用户。 Android依赖项工作正常,但是每当我在iOS依赖项中调用任何“ Auth”方法时,应用程序启动时就会崩溃,并从委托文件中的“ Firebase.Core.App.Configure()”行引发以下错误:< / p>

  

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,当我从Xamarin.iOS项目中删除Firebase iOS NuGet Analytics程序包时,一切正常,但是当同时使用Analytics和Auth程序包时,崩溃将继续。所以我想我的新问题是: 是否可以在同一项目中同时使用Firebase iOS Auth和Firebase iOS Analytics?任何见解都会有所帮助。

2 个答案:

答案 0 :(得分:0)

该错误表明应该处理该消息的对象已被处置。

这可能是绑定问题,或者是向Firebase提供回调的方式。

无法仅通过您的代码片段来诊断问题,因此快速解决方法是执行以下操作:

无论将C#对象传递给Firebase的任何对象,都可能需要保留在静态全局变量上。这样可以确保它不会被处置。

答案 1 :(得分:0)

问题在于NuGet软件包。

该内部方法在v5.1.8中存在,但在v5.2.0中不存在。

目前,请降级至5.1.8

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