Android Firebase用户为已注册用户返回空元数据
我一直在使用Firebase对应用程序中的用户进行身份验证Android Firebase用户为已注册用户返回空元数据,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我一直在使用Firebase对应用程序中的用户进行身份验证FirebaseAuth.getInstance().getCurrentUser().getMetadata()在用户注册后返回应用程序时返回null。当用户第一次注册时,它可以完美地工作,但对于返回的用户,它会返回null。Firebase团队的Malcolm 谢谢你指出这一点。这是目前安卓SDK持久化中的一个bug。我们将尽快修复此问题-密切关注即将发布的发行说明,以了解问题何时得到解决 同时,您可以使用的解决方法是在注册时写入应用
FirebaseAuth.getInstance().getCurrentUser().getMetadata()
在用户注册后返回应用程序时返回null
。当用户第一次注册时,它可以完美地工作,但对于返回的用户,它会返回null
。Firebase团队的Malcolm
谢谢你指出这一点。这是目前安卓SDK持久化中的一个bug。我们将尽快修复此问题-密切关注即将发布的发行说明,以了解问题何时得到解决
同时,您可以使用的解决方法是在注册时写入应用程序的以存储这些属性,并在应用程序中的其他位置需要这些属性时读取这些属性。希望这有帮助 遇到了与getMetadata()返回null相同的问题 我使用Firebase助手向导在Android Studio中添加了Firebase支持。我只是无法让FirebaseUser.getMetadata()正常工作 然后,我更新了build.gradle(模块:app)依赖项,如下所示: 实现'com.google.firebase:firebase auth:16.0.3' 实现'com.google.firebase:firebase核心:16.0.1' (这些是撰写本文时的最新版本。当您阅读本文时,可能还会有更新的版本) 我发现我仍然得到空值,但后来我去添加一个新用户,突然它开始工作。我已经删除了所有现有的帐户,并创建了新的帐户-不知道这是否会产生影响。但它现在似乎起作用了 因此,更新依赖项并进行梯度同步可能会解决您的问题,至少对新用户来说是这样 Android Studio中的Firebase助手可能需要修改以反映最新版本
(仍然担心这是完全可靠的…)建议您联系。这似乎是一个未记录的限制或错误。我认为打电话可能会有帮助,但仍然会得到空元数据。@BobSnyder刚刚向Firebase支持发布了一个请求。我不确定他们是否会认真关注,因为我已经有一个问题与他们悬而未决。这似乎是一个错误。我已经向Firebase Auth团队提交了一份报告。如果需要检查用户是新用户还是现有用户,请暂时使用,可从AuthResult获得。@bojeil我正在使用一种变通方法,将状态存储在SharedReferences中。顺便说一句,
AdditionalUserInfo
对象保存用户的IDP特定数据,如果提供者是Facebook、Github、Google或Twitter之一。在我的例子中,提供者是电话号码。请看一下@bojeil,我正在使用AuthStateListener
来监听auth状态中的更改。我看不到在AuthStateListener
实现中获得对AuthResult
的引用的方法。通过向Firebase支持部门询问此问题,我将支持问题的配额减少了一个。既然这是一个已知的bug,您可以通过在bug和功能请求下转移问题来更新我的Firebase支持问题配额吗。我认为这是一个公平的要求现在解决了吗?没有提供问题链接!!