尝试登录/创建帐户时,FirebaseAuth.Instance为null

时间:2019-06-27 14:03:57

标签: c# firebase authentication xamarin nullreferenceexception

我正在尝试使用Xamarin表单中的电子邮件和密码登录Firebase。最初一切正常,直到突然停止。调用CreateUserWithEmailAndPasswordAsync方法时,由于我的FirebaseAuth.Instance通过null传入,因此出现了null引用异常。

我初始化我的应用程序,并在MainActivity中调用GetInstance,并且该代码以前有效,所以我不确定这个问题。

MainActivity.cs

protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);

    FirebaseOptions options = new FirebaseOptions.Builder()
        .SetApiKey("--ApiKey--")
        .SetApplicationId("--AppId--")
        .Build();

    FirebaseApp app = FirebaseApp.InitializeApp(this, options);

    FirebaseAuth authInstance = FirebaseAuth.GetInstance(app);

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

FirebaseAuth.Instance为空

public async Task<string> RegisterWithEmailPassword(string email, string password, bool isTrainer)
{

    try
    {

        var user = await FirebaseAuth.Instance.CreateUserWithEmailAndPasswordAsync(email, password);
        var token = await user.User.GetIdTokenAsync(false);

        user.User.SendEmailVerification();

        return token.Token;

    }
    catch (Exception e)
    {
        return e.Message;

    }
}

我显然希望CreateUserWithEmailAndPasswordAsync使用我提供的电子邮件和密码在Firebase App中创建一个新用户。当它尝试将其添加到我的“用户”变量中时,由于Instance为空,因此出现了异常。

编辑:看得更深入之后,看来问题可能出在MainActivity中的InitializeApp方法上。在检查我的“应用程序”之后,Uid属性出现此错误“ Firebase.FirebaseApiNotAvailableException:firebase-auth未链接,请退回到未经身份验证的模式”(请参见下面的屏幕截图)。我认为这就是为什么GetInstance()返回null的原因。经过一番谷歌搜索之后,我真的找不到关于该区域对我有用的任何信息。

Uid error Firebase

1 个答案:

答案 0 :(得分:0)

我的建议是降级Firebase NuGets并确保它们具有相同的版本。


我将Android SDK从v8.1升级到{8.1}时遇到了同样的问题(FirebaseAuth.InstancenullUid的{​​{1}}属性就是您所描述的) v9.0,以及这些Firebase NuGet从60.1142.1版本到最新版本:

  • Xamarin.Firebase.Auth(71.1605.0)
  • Xamarin.Firebase.Common(71.1610.0)
  • Xamarin.Firebase.Core(71.1601.0)
  • Xamarin.FIrebase.Database(71.1601.0)
  • Xamarin.Firebase.lid(71.1710.0)

如您所见,最新版本不相同(我不确定这是否是造成问题的原因)。


除了这些,我还不断收到

之类的奇怪错误
  

“ ConvertResourcesCases”任务意外失败。

构建解决方案时。在我将它们降级之后,这些错误也停止显示。


相关文章: FirebaseAuth.getInstance() is null