我创建了一个应用程序,使用 flutter 作为 UI,使用 Nodejs 中的 Restapi 作为后端。现在我想验证使用 firebase 身份验证注册的用户,发送当前用户的 firebase Id token 。为此,我使用 HTTP Post 方法发送 id token 。但出现错误。
示例代码:
import 'package:http/http.dart' as http;
FirebaseUser user = await FirebaseAuth.instance.currentUser();
if(user!=null){
Future<IdTokenResult> idtoken = user.getIdToken();
}
http.Response response = await http.post("https://www.something.com/something/something",
body:jsonEncode({
"name": name.text,
"pincode": "$pincode",
"token": idtoken,
"phone": "${widget.phoneNo}",
}),
headers: {'Content-Type': 'application/json'},
);
出现错误:
Unhandled Exception: Converting object to an encodable object failed: Instance of 'Future<IdTokenResult>'
P.S:建议编辑,如果问题有问题,我寻求想法 (提前感谢您的帮助:) )
最佳答案
您需要 token(String) 而不是 idtoken(IdTokenResult)
import 'package:http/http.dart' as http;
FirebaseUser user = await FirebaseAuth.instance.currentUser();
if(user!=null){
IdTokenResult idtoken = await user.getIdToken();
// get String token
String token = idtoken.token;
}
http.Response response = await http.post("https://www.something.com/something/something",
body:jsonEncode({
"name": name.text,
"pincode": "$pincode",
"token": token,
"phone": "${widget.phoneNo}",
}),
headers: {'Content-Type': 'application/json'},
);
关于node.js - 如何使用 http POST 方法将当前用户(使用该应用程序的人)的 Firebase Id token 从 Flutter 应用程序发送到restapi?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62302389/