json - 如何在不在 firebase 实时数据库上生成 firebase id 的情况下发布我的数据?
问题描述
我正在尝试将我的用户的身份验证 ID 推送到实时数据库以轻松同时获取它们,但实时数据库继续在 UUID 下生成 ID。
Future<http.Response> createUserProfile(
String id,
String email,
String userName,
) async {
return await http.post(
ServiceKeys.FIREBASE_URL + "/users/$id.json",
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{'name': userName, 'email': email}),
);
}
}
我不想生成“-MCHpnJZnKvth-L89axu”。而是直接将其写入我提供的 id 中。
解决方案
尝试使用 put 而不是 post。Firebase API 说
POST:添加到 Firebase 数据库中的数据列表。每次我们发送 POST 请求时,Firebase 客户端都会生成一个唯一的密钥,例如消息/用户//
和
PUT:将数据写入或替换到定义的路径,例如消息/用户/用户1/
由于您已经有了 uid,因此它将是一个已定义的路径
推荐阅读
- asp.net-mvc - 将 ToList 更改为 ToListAsync 是否确实解决了“在此上下文中启动的第二个操作”
- ubuntu - 未找到 Ubuntu 软件包“gcc”的别名,但找到了“gcc-4.8”
- powershell - powershell“Get-Volume”命令以错误完成
- javascript - 如何在javascript中双重滚动
- java - Java和PHP应用程序的GC和内存行为?
- php - 无法显示 DataTable 中的最后一列
- javascript - 如何在 JWK 响应 (PHP) 中获取密钥 ID 值
- c# - HttpClient:无法从 WCF 服务连接到服务。从控制台应用程序同样工作正常
- javascript - 如何将下拉选项添加到多行表单?
- php - 从 Codeigniter 中的两个大表中检索数据的最佳查询