【问题标题】:Flutter FirebaseUser how to access the user dataFlutter FirebaseUser 如何访问用户数据
【发布时间】:2020-10-22 18:15:22
【问题描述】:

我正在使用 Flutter 学习 Firebase。 目前正在制作匿名登录选项,这是我创建的类:

class AuthService {

  final FirebaseAuth _auth = FirebaseAuth.instance;
  
  
  // sign in anonymously

  Future signInAnonymous() async {
    try{
      // signs in as anon user
      AuthResult signInResult = await _auth.signInAnonymously();
      // retruns currently signed in user, else null
      FirebaseUser userFromResult = signInResult.user;
      return userFromResult; // HERE: if I add .uid, the id object is displayed
    }catch(e){
      print(e.toString());
      return null;
    }
  }
}

在创建实例并使用该方法后的登录页面中,当我打印结果时,我得到FirebaseUser(Instance of 'PlatformUser') insted 的用户信息,代码如下:

onPressed: () async {
            dynamic result = await _auth.signInAnonymous();
            if(result == null){print('Error signing in.');}
            else{
              print('Signed in successfully');
              print(result);
            }

如何访问用户数据?

更新:如果我将 return userFromResult; 更改为 return userFromResult.uid;,则会返回 id 字符串。 但是,我仍然想知道如何打印完整的对象。

【问题讨论】:

    标签: firebase flutter dart


    【解决方案1】:

    不同之处在于,在 0.13.x 版本中用户数据可用,但在本示例中使用的版本中,使用的 bersion 为 0.16.x。

    【讨论】:

      【解决方案2】:

      onpressed 内部的 Result 是动态类型转换,但内部是 FirebaseUser。

      // onPressed Callback
                  dynamic result = await _auth.signInAnonymous();
      

      您可以使用正确的返回类型更改您的登录方法,并使用 FirebaseUser 而不是动态的。

      Future<FirebaseUser> signInAnonymous() async {
        // [...]
        return userFromResult; // HERE: if I add .uid, the id object is displayed
      }
      
      onPressed: () async {
          FirebaseUser result = await _auth.signInAnonymous();
          print(result.uid); // should contain the id
          // [...]
      

      【讨论】:

      • 感谢您的回答,但我不想获取 id,我想打印完整的对象。
      • 然后把onPressed函数改成:print(result.toString()); “结果”是带有 displayName 等的完整用户对象。 pub.dev/documentation/firebase_auth/latest/firebase_auth/…
      • @MyrcaleDesign 它不起作用,它显示的只是Instance of 'User'
      猜你喜欢
      • 2020-12-14
      • 2020-10-10
      • 2020-10-23
      • 1970-01-01
      • 2021-04-21
      • 2019-07-10
      • 2020-05-08
      • 2017-08-19
      • 2021-03-03
      相关资源
      最近更新 更多