node.js - 如何使用 http POST 方法将当前用户(使用应用程序的人)、Firebase Id 令牌从 Flutter 应用程序发送到 restapi?
问题描述
我已经创建了一个应用程序,使用 Flutter for UI 和 Nodejs 中的 Restapi 作为后端。现在我想验证注册了firebase身份验证的用户,发送当前用户的firebase Id令牌。为此,我使用 HTTP Post 方法发送 id 令牌。但是遇到了错误。
示例代码:
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>'
PS:建议编辑,如果问题有问题,我的想法 (提前感谢您的帮助:))
解决方案
你需要 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'},
);
推荐阅读
- mysql - Flask 应用设置问题:PyCharm 运行时配置
- angular - Angular + nginx 重定向没有发生
- python - kfold交叉验证后如何绘制每个折叠的数据和模型拟合?
- typescript - 有没有办法创建一个空的 sum 类型对象,其实际类型稍后将在 TypeScript 中指定?
- amazon-web-services - 从 AWS Backup 恢复 DynamoDB 表
- c# - 关于失败时重新启动关卡的快速问题
- android - Dagger Hilt 不能用另一个字符串作为 ViewModel 中的依赖项注入字符串
- javascript - WebPack output.library.type var 未定义
- css - 我可以更改 AEM 中的组件嵌套吗?
- java - Exo Player 使用 IcyHttpDataSourceFactory 时声音失真