我正在使用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')
插入了用户信息,这是代码:
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字符串。
但是,我仍然想知道如何打印整个对象。
答案 0 :(得分:0)
onpressed内部的结果是动态类型强制转换,但内部是FirebaseUser。
// onPressed Callback
dynamic result = await _auth.signInAnonymous();
您可以使用正确的返回类型更改SignIn方法,并代替动态使用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
// [...]
答案 1 :(得分:0)
区别在于,在0.13.x版本中,用户数据可用,但在本示例中使用的版本中,所使用的安全等级为0.16.x。