我正在尝试使用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的原因。经过一番谷歌搜索之后,我真的找不到关于该区域对我有用的任何信息。
答案 0 :(得分:0)
我的建议是降级Firebase NuGets并确保它们具有相同的版本。
我将Android SDK从v8.1升级到{8.1}时遇到了同样的问题(FirebaseAuth.Instance
是null
,Uid
的{{1}}属性就是您所描述的) v9.0,以及这些Firebase NuGet从60.1142.1版本到最新版本:
如您所见,最新版本不相同(我不确定这是否是造成问题的原因)。
除了这些,我还不断收到
之类的奇怪错误“ ConvertResourcesCases”任务意外失败。
构建解决方案时。在我将它们降级之后,这些错误也停止显示。