如何从FirebaseAuth获取ID令牌

azi*_*iza 12 dart firebase firebase-authentication flutter

我正在从我的firebase数据库中读取一些Json文件,我正在尝试获取当前用户的ID令牌,如下所示:

 var response = await httpClient.get(url,headers: {'Authorization':"Bearer ${FirebaseAuth.instance.currentUser.getToken()}"});
Run Code Online (Sandbox Code Playgroud)

当我执行上一行时,它似乎没有得到正确的令牌,因为我无法访问数据库,但是,当我在字符串中手动包含ID令牌时,我的应用程序按预期工作.我做错了到底是什么意思?

rin*_*usu 13

getIdToken()返回Future- 您必须await实际获取令牌字符串:

var token = await FirebaseAuth.instance.currentUser().getIdToken();
var response = await httpClient.get(url,headers: {'Authorization':"Bearer $token"});
Run Code Online (Sandbox Code Playgroud)


Mat*_*ini 6

我认为 Flutter 中存在一个错误。

现在要调用getIdToken()您需要执行此操作的方法:

FirebaseUser user = await FirebaseAuth.instance.currentUser();

String token;

user.getIdToken().then((result) {

    token = result.token;
});
Run Code Online (Sandbox Code Playgroud)

你不能打电话 FirebaseAuth.instance.currentUser().getIdToken()