【发布时间】:2020-10-19 09:07:20
【问题描述】:
我正在尝试创建一个函数,以查看用户使用哪种方法登录,例如。谷歌。我创建了一个名为 getProvider() 的函数。这是函数的代码。
Future<String> getProvider (FirebaseAuth _auth)
async {
var user = await _auth.currentUser();
var provider;
Firestore firestore = Firestore.instance;
await firestore
.collection('Users')
.document('${user.uid}')
.get()
.then((value) {
provider =
value.data['Authentication Provider'];
return provider;
});
}
但是,当我在函数本身之外打印函数的输出值时,我得到 null。
print(await getProvider(_auth)) //This prints null
但是,当我在函数内打印提供者的值时,它不为空,在这种情况下,我得到了谷歌。当我删除这个函数并在任何需要它的地方调用所有代码时,它按预期工作。
这说明这个getProvider()函数的返回值有问题。有人可以告诉我如何解决这个问题,以便它真正返回正确的值吗?
【问题讨论】:
标签: firebase flutter asynchronous dart google-cloud-firestore