我正在尝试-
final Future<FirebaseUser> user = auth.currentUser();
但是问题在于,不是通过“ userid”创建文档,而是通过-
名称创建文档Instance of 'Future<FirebaseUser>'
从字面上看,这是我现在的文档名称,但是我想专门使其成为用户ID。
我该怎么办?
答案 0 :(得分:5)
Class c1=new Class("className1");
c1.addStudent(new Student("StudentNAme1"));
c1.addStudent(new Student("StudentNAme2"));
c1.addStudent(new Student("StudentNAme3"));
classRepository.save(c1);
答案 1 :(得分:3)
final FirebaseAuth _auth = FirebaseAuth.instance;
getCurrentUser() async {
final FirebaseUser user = await _auth.currentUser();
final uid = user.uid;
// Similarly we can get email as well
//final uemail = user.email;
print(uid);
//print(uemail);
}
调用函数getCurrentUser以获取结果。例如,我使用了一个按钮:
RaisedButton(
onPressed: getCurrentUser,
child: Text('Details'),
),
答案 2 :(得分:1)
您需要等待异步操作完成。
final FirebaseUser user = awit auth.currentUser();
final userid = user.uid
或者您可以使用then样式语法:
final FirebaseUser user = auth.currentUser().then((FirebaseUser user) {
final userid = user.uid;
// rest of the code
});
答案 3 :(得分:1)
你也可以试试这个。
"{\"error\":{\"code\":\"ErrorInvalidUser\",\"message\":\"The requested user 'foobar@private.com' is invalid.\"}}"
现在只需在您的代码中调用 currentUser() {
final User user = _firebaseAuth.currentUser;
final uid = user.uid.toString();
return uid;
}
,它就会返回当前登录用户的 uid。
currentUser()
答案 4 :(得分:0)
如果您使用Google登录功能,则会获得该用户的信息。
extend(config, ctx) {
// Run ESLint on save
if (ctx.isDev && ctx.isClient) {
config.module.rules.push({
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /(node_modules)/
})
}
}
答案 5 :(得分:0)
这是另一种解决方法:
Future<String> inputData() async {
final FirebaseUser user = await FirebaseAuth.instance.currentUser();
final String uid = user.uid.toString();
return uid;
}
它返回uid
作为字符串
答案 6 :(得分:0)
正常执行将始终返回
Instance of 'Future<FirebaseUser>'
尝试使用.then,如下所示
您的authservice类中的第一个Create函数
Future<String> getCurrentUID() async{
final FirebaseUser user = await _auth.currentUser();
final String uid = user.uid;
return uid;
}
然后在您拥有此ID的位置调用此函数,如下所示:
Widget build(BuildContext context) {
void getid(String foo) {
userID = foo;
}
AuthService().getCurrentUID().then((value) => getid(value));
return Scaffold(
...
);
}
这是获取ID的最便捷方法 您还可以获得电子邮件和手机号码。这样。
答案 7 :(得分:0)
您可以在 flutter 小部件之前将其添加到全局状态中。
final FirebaseAuth auth = FirebaseAuth.instance;
final User user = auth.currentUser;
final myUid = user.uid;
它将使 myUid
可用于这种情况。