Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果firebase的Id为',我想向其添加新产品;t存在于最喜欢的部分_Firebase_Flutter_Dart_Firebase Realtime Database - Fatal编程技术网

如果firebase的Id为',我想向其添加新产品;t存在于最喜欢的部分

如果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

我正在制作一个商店应用程序,我希望每个帐户都有自己喜欢的产品,因此我尝试将用户添加到favorite的产品添加到其“Firebase”的配置文件部分,将案例从favorite修改为not也可以,但问题是我只想在该部分不存在id的情况下添加产品

但它会复制记录并对其进行修改,而不仅仅是添加或修改

代码如下:

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/}它修改现有产品并创建一个新产品