Xamarin.forms Xamarin表单中的简单Firebase身份验证问题
我只是从用于跨平台应用程序开发的Xamarin表单开始,我在一些应该非常简单的问题上遇到了问题。 创建了一个基本的跨平台应用程序,并安装和引用了Firebase身份验证所需的所有软件包。我还在Firebase控制台中创建了一个项目,将其配置为电子邮件和密码身份验证,并注册了一个用户,等等。 因此,我在Android项目中编写了一个基本方法来检查当前用户是否登录Xamarin.forms Xamarin表单中的简单Firebase身份验证问题,xamarin.forms,firebase-authentication,Xamarin.forms,Firebase Authentication,我只是从用于跨平台应用程序开发的Xamarin表单开始,我在一些应该非常简单的问题上遇到了问题。 创建了一个基本的跨平台应用程序,并安装和引用了Firebase身份验证所需的所有软件包。我还在Firebase控制台中创建了一个项目,将其配置为电子邮件和密码身份验证,并注册了一个用户,等等。 因此,我在Android项目中编写了一个基本方法来检查当前用户是否登录 public async Task<string> GetCurrentUser() { string userID
public async Task<string> GetCurrentUser()
{
string userID = null;
if (FirebaseAuth != null)
{
try
{
FirebaseUser user = FirebaseAuth.CurrentUser;
if (user != null)
{
var userToken = await user.GetIdTokenAsync(false);
userID = userToken.Token;
}
}
catch (FirebaseAuthException e)
{
Debug.WriteLine(e.ToString());
}
}
else
{
Debug.WriteLine("Failed to get a FirebaseAuth instance");
}
return userID;
}
公共异步任务GetCurrentUser()
{
字符串userID=null;
如果(FirebaseAuth!=null)
{
尝试
{
FirebaseUser=FirebaseAuth.CurrentUser;
如果(用户!=null)
{
var userToken=await user.GetIdTokenAsync(false);
userID=userToken.Token;
}
}
捕获(FireBaseAuth异常)
{
Debug.WriteLine(例如ToString());
}
}
其他的
{
WriteLine(“未能获取FirebaseAuth实例”);
}
返回用户标识;
}
但是,调用user.GetIdTokenAsync(false);永远不会回来
为什么?您是从FirebaseAuth.CurrentUser获得用户的吗?如果用户不为null,则表示当前用户已登录。调用user.GetIdTokenAsync时是否出现异常?您可以将FirebaseAuthException更改为exception以捕获更多异常。用户返回时不为null。user.GetIdTokenAsync上没有异常-我添加了一个catch(异常e)块,但仍然没有任何异常。您在userID行添加了一个断点,但它从未命中?你使用的是那些nuget软件包的最新版本吗?是的,使用的是nuget的最新版本。用户标识行上的断点从未命中,也未发生异常。@ThomasS,找到了解决方案?您是从FirebaseAuth.CurrentUser获取用户的吗?如果用户不为null,则表示当前用户已登录。调用user.GetIdTokenAsync时是否出现异常?您可以将FirebaseAuthException更改为exception以捕获更多异常。用户返回时不为null。user.GetIdTokenAsync上没有异常-我添加了一个catch(异常e)块,但仍然没有任何异常。您在userID行添加了一个断点,但它从未命中?你使用的是那些nuget软件包的最新版本吗?是的,使用的是nuget的最新版本。用户标识行上的断点从未命中,也未发生异常。@ThomasS,找到解决方案了吗?