我有以下代码,应该更新我在 firebase 中的地址记录。但是,它不是更新,而是添加新字段。
代码如下:
Future<void> updateAddress (Address address) async{
final url = 'https://m&m.firebaseio.com/address/$userId.json?auth=$authToken';
await http.patch(url, body:json.encode({
'phoneNumber':address.phoneNumber,
'name':address.name,
'details':address.details,
'alternatePhone':address.alternatePhone
}));
_items.first = address;
notifyListeners();
}
这是我执行更新函数后的样子:
最佳答案
嘿,我看到您正在更新用户的所有值,因此您也可以使用 http.put
而不是补丁
像这样
Future<void> updateAddress (Address address) async{
final url = 'https://m&m.firebaseio.com/address/$userId.json?auth=$authToken';
await http.put(url, body:json.encode({
'phoneNumber':address.phoneNumber,
'name':address.name,
'details':address.details,
'alternatePhone':address.alternatePhone
}));
_items.first = address;
notifyListeners();
}
另请参阅这些文档以获取更多信息 firebase realtime database docs
欢迎发表评论并询问更多信息
关于flutter - 需要更新对象而不是添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64945954/