如果firebase的Id为',我想向其添加新产品;t存在于最喜欢的部分
我正在制作一个商店应用程序,我希望每个帐户都有自己喜欢的产品,因此我尝试将用户添加到favorite的产品添加到其“Firebase”的配置文件部分,将案例从favorite修改为not也可以,但问题是我只想在该部分不存在id的情况下添加产品 但它会复制记录并对其进行修改,而不仅仅是添加或修改 代码如下:如果firebase的Id为',我想向其添加新产品;t存在于最喜欢的部分,firebase,flutter,dart,firebase-realtime-database,Firebase,Flutter,Dart,Firebase Realtime Database,我正在制作一个商店应用程序,我希望每个帐户都有自己喜欢的产品,因此我尝试将用户添加到favorite的产品添加到其“Firebase”的配置文件部分,将案例从favorite修改为not也可以,但问题是我只想在该部分不存在id的情况下添加产品 但它会复制记录并对其进行修改,而不仅仅是添加或修改 代码如下: Future<void> testFavourite(String id,uid) async { final url = 'https://test.firebaseio
Future<void> testFavourite(String id,uid) async {
final url = 'https://test.firebaseio.com/profiles/.json';
final response = await http.get(Uri.parse(url));
final profileData = jsonDecode(response.body) as Map<String,dynamic>;
String profile;
profileData.forEach((key, value) async {
if(value['uid'] == uid){
profile = key;
final profileUrl = 'https://test.firebaseio.com/profiles/$profile/favProducts.json';
if(value['favProducts'] == null){
await http.post(Uri.parse(profileUrl),body: jsonEncode({
'id' : id,
'isFavorite' : true,
}));
}
if(value['favProducts'] != null){
final response = await http.get(Uri.parse(profileUrl));
final favProducts = jsonDecode(response.body) as Map<String,dynamic>;
favProducts.forEach((key,product) async{
if(product['id'] == id){
final productUrl = 'https://test.firebaseio.com'
'/profiles/$profile/favProducts/$key.json';
await http.patch(Uri.parse(productUrl),body: jsonEncode({
'isFavorite' : !product['isFavorite']
}));
}
if(product['id'] != id){
await http.post(Uri.parse(productUrl),body: jsonEncode({
'id' : id,
'isFavorite' : true,
}));
}
});
}
}
});
}
Future testfavorite(字符串id,uid)异步{
最终url=https://test.firebaseio.com/profiles/.json';
最终响应=等待http.get(Uri.parse(url));
final profileData=jsonDecode(response.body)作为映射;
管柱剖面;
forEach((键,值)异步{
如果(值['uid']==uid){
配置文件=键;
最终配置文件URL=https://test.firebaseio.com/profiles/$profile/favProducts.json';
if(值['favProducts']==null){
等待http.post(Uri.parse(profileUrl),主体:jsonEncode({
“id”:id,
“isFavorite”:对,
}));
}
if(值['favProducts']!=null){
最终响应=等待http.get(Uri.parse(profileUrl));
最终favProducts=jsonDecode(response.body)作为映射;
forEach((键,产品)异步{
if(产品['id']==id){
最终产品URL=https://test.firebaseio.com'
“/profiles/$profile/favProducts/$key.json”;
等待http.patch(Uri.parse(productUrl),主体:jsonEncode({
'isFavorite':!产品['isFavorite']
}));
}
if(产品['id']!=id){
等待http.post(Uri.parse(productUrl),主体:jsonEncode({
“id”:id,
“isFavorite”:对,
}));
}
});
}
}
});
}
那么您得到的错误是什么?当我键入此代码时:if(value[“id”!=id){//code to post new product/}它修改现有产品并创建一个新产品