我对此有3个问题:

FirebaseAuth.getInstance().getUid()



根据规范,getInstance()返回FirebaseAuth的实例
类,但getUid在此类中不起作用。但这有效。怎么样 ?
如果这是新用户,似乎getUid会生成唯一ID,但是
没有写在规范中。此功能如何工作?
什么时候抛出异常或返回null?


谢谢,
亚历克斯

最佳答案

documentation

公共抽象字符串getUid()


  返回认证提供者指定的用户标识符。
  例如,如果此对象对应于Google用户,则返回
  Google用户ID。对于电话号码帐户,UID为
  E.164格式的标准化电话号码。


什么时候抛出异常或返回null?

这是在单例内部和方法getUid()中处理的,我找不到有关抛出的任何文档

为了使getUid()工作,您需要首先让当前用户登录以获得ID

FirebaseAuth.getInstance().getCurrentUser().getUid();


您可以通过先检查当前用户是否为!= null或仅使用AuthListener对其进行检查来防止null

FirebaseAuth currentUser = FirebaseAuth.getInstance().getCurrentUser();

if(currentUser != null)
  String uid = currentUser.getUid();

10-05 20:10