Xamarin.forms Xamarin表单中的简单Firebase身份验证问题

Xamarin.forms Xamarin表单中的简单Firebase身份验证问题,xamarin.forms,firebase-authentication,Xamarin.forms,Firebase Authentication,我只是从用于跨平台应用程序开发的Xamarin表单开始,我在一些应该非常简单的问题上遇到了问题。 创建了一个基本的跨平台应用程序,并安装和引用了Firebase身份验证所需的所有软件包。我还在Firebase控制台中创建了一个项目,将其配置为电子邮件和密码身份验证,并注册了一个用户,等等。 因此,我在Android项目中编写了一个基本方法来检查当前用户是否登录 public async Task<string> GetCurrentUser() { string userID

我只是从用于跨平台应用程序开发的Xamarin表单开始,我在一些应该非常简单的问题上遇到了问题。 创建了一个基本的跨平台应用程序,并安装和引用了Firebase身份验证所需的所有软件包。我还在Firebase控制台中创建了一个项目,将其配置为电子邮件和密码身份验证,并注册了一个用户,等等。 因此,我在Android项目中编写了一个基本方法来检查当前用户是否登录

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,找到解决方案了吗?