OGeek|极客世界-中国程序员成长平台

标题: ios - Firebase 中的多路径更新问题具有两个以上的位置 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 18:34
标题: ios - Firebase 中的多路径更新问题具有两个以上的位置

我正在尝试使用 Swift SDK 在 Firebase 中一次更新 8 个位置。不知何故,我设法更新了前两个,但其他六个只写入父节点,并且丢失了对应的路径。下面是我的 Firebase 数据库的数据,可以更好地说明这个问题:

    {
  "districts" : {
    "did01" : {
      "name" : "Teusaquillo",
      "peopleids" : {
        "stateid01" : true,
        "stateid02" : true,
        "stateid03" : true
      },
      "schools" : {
        "schoolid01" : {
          "location" : "norte 50 grados sur 42 ",
          "name" : "Agustiniano Salitre",
          "posts" : {
            "eighth" : {
              "nola" : "hola"
            },
            "eighth-KaG1PA5r7cl70FtBsE4" : "angela",
            "eleventh" : {
              "name" : "haka"
            },
            "eleventh-KaG1PA5r7cl70FtBsE4" : "angela",
            "fifth" : {
              "-KaG1PA5r7cl70FtBsE4" : "angela",
              "dsadsad" : {
                "name" : "Hola"
              },
              "dsfsdfdsf" : true
            },
            "first" : {
              "1" : {
                "author" : "Giovanny Piñeros",
                "text" : "Test"
              },
              "01" : {
                "author" : "Giovanny Piñeros",
                "text" : "Capo"
              },
              "abdffg" : {
                "author" : "Gio",
                "text" : "hola"
              },
              "fdgfdg" : {
                "author" : "Giovanny Piñeros",
                "text" : "Hola"
              },
              "nfdsfds" : {
                "author" : "Giovanny Piñeros",
                "text" : "Vivir de lo que amo"
              },
              "postid01" : {
                "author" : "apa frita",
                "text" : "Hola",
                "topic" : "Informatics",
                "year" : "first"
              },
              "rtyrty" : {
                "author" : "Giovanny Piñeros",
                "text" : "Si con headapp solo sabia manejar strings y colores, imaginate ahora lo que puedo crear"
              },
              "zsadsa" : {
                "author" : "Gio",
                "text" : "Trest"
              }
            },
            "fourth" : {
              "name" : "hqiq"
            },
            "fourth-KaG1PA5r7cl70FtBsE4" : "angela",
            "ninth" : {
              "hola" : "ahah"
            },
            "ninth-KaG1PA5r7cl70FtBsE4" : "angela",
            "postid01" : {
              "-KaG0b-X9sWXxXlXlmeK" : "angela",
              "-KaG0wNu0Gz5oxu4__Ej" : "angela",
              "author" : "apa frita",
              "likes" : {
                "userid01" : "Giovanny Piñeros"
              },
              "text" : "hola",
              "topic " : "Informatics",
              "year" : "first"
            },
            "postid02" : {
              "autor" : "Directive",
              "text" : "Free for the day",
              "topic" : "General",
              "year" : "all"
            },
            "second" : {
              "-KaFnTl89keEOx3UpnGJ" : true,
              "-KaFpLsNy6z-TshUJONx" : true,
              "-KaFpMwBdHqBwsq-k6i3" : true,
              "-KaFpz6qwQ2uTevvpxXo" : true,
              "-KaFq21Qdv-Z6KFcu8ZT" : true,
              "-KaFq34fN1-ZxO0EtqEw" : true,
              "-KaFv7a9JvEjPLDDzT8S" : "angela",
              "-KaFw9Hb6OjIRzeP6jdk" : "angela",
              "-KaFwAFvFoVEvpzaaVO2" : "angela",
              "-KaFwAboyWtEOG3NU1yZ" : "angela",
              "-KaFwAji3rR6e5fCHjFc" : "angela",
              "-KaFwAmisIA5i4UhvcRw" : "angela",
              "-KaFyJHEqDzoVoj_zUWI" : "angela",
              "-KaFy_cqf1mvTxRGN5j_" : "angela",
              "-KaG-_r4ql2YVc19gbkt" : "angela",
              "dsfsdf" : {
                "hola" : "dfsad"
              }
            },
            "seventh" : {
              "name" : "dsfhksd"
            },
            "sixth" : {
              "name" : "haaka"
            },
            "tenth" : {
              "name" : "hola"
            },
            "tenth-KaG1PA5r7cl70FtBsE4" : "angela",
            "third" : {
              "-KaFnTl89keEOx3UpnGJ" : true,
              "-KaFpLsNy6z-TshUJONx" : true,
              "-KaFpMwBdHqBwsq-k6i3" : true,
              "-KaFpz6qwQ2uTevvpxXo" : true,
              "-KaFq21Qdv-Z6KFcu8ZT" : true,
              "-KaFq34fN1-ZxO0EtqEw" : true,
              "-KaFv7a9JvEjPLDDzT8S" : "angela",
              "-KaFw9Hb6OjIRzeP6jdk" : "angela",
              "-KaFwAFvFoVEvpzaaVO2" : "angela",
              "-KaFwAboyWtEOG3NU1yZ" : "angela",
              "-KaFwAji3rR6e5fCHjFc" : "angela",
              "-KaFwAmisIA5i4UhvcRw" : "angela",
              "-KaFyJHEqDzoVoj_zUWI" : "angela",
              "-KaFy_cqf1mvTxRGN5j_" : "angela",
              "-KaG-_r4ql2YVc19gbkt" : "angela",
              "-KaG0b-X9sWXxXlXlmeK" : "angela",
              "-KaG0wNu0Gz5oxu4__Ej" : "angela",
              "-KaG1PA5r7cl70FtBsE4" : "angela",
              "author" : "hola"
            },
            "twelfth" : {
              "name" : "haoao"
            }
          },
          "users" : {
            "userid01" : {
              "likes" : {
                "postid01" : true
              },
              "name" : "Giovanny Piñeros",
              "rol" : "student",
              "stateid" : "stateid01",
              "year" : "first"
            },
            "userid03" : {
              "osts" : {
                "postid01" : {
                  "fjsldkfj" : "nombre",
                  "texzto" : "fksdjh"
                }
              },
              "name" : "apa frita",
              "rol" : "teacher"
            }
          }
        }
      }
    },
    "did02" : {
      "name" : "Austin",
      "peopleids" : {
        "stateid04" : true,
        "stateid05" : true,
        "stateid06" : true
      }
    }
  },
  "eventos" : {
    "attendiees" : {
      "adshfksafjh" : "giovanny"
    },
    "nombre" : "fiesta"
  },
  "queue" : {
    "specs" : {
      "specstest" : 0
    },
    "tasks" : {
      "ido" : {
        "_error_details" : {
          "error" : "Task was malformed",
          "error_stack" : "Error: Task was malformed\n    at Object.update (/Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-queue/dist/lib/queue_worker.js:453:27)\n    at Ih (/Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-admin/lib/database/database.js:233:395)\n    at R.h.transaction (/Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-admin/lib/database/database.js:248:466)\n    at /Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-queue/dist/lib/queue_worker.js:446:30\n    at c (/Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-admin/lib/database/database.js:135:58)\n    at /Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-admin/lib/database/database.js:126:791\n    at Ac (/Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-admin/lib/database/database.js:63:165)\n    at jf (/Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-admin/lib/database/database.js:126:215)\n    at hf (/Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-admin/lib/database/database.js:125:479)\n    at vf (/Users/Giovanny/Dropbox/Proyectos/NotifyMe/NotifyMeServer/notifymeserver/node_modules/firebase-admin/lib/database/database.js:231:426)",
          "original_task" : 0
        },
        "_state" : "error",
        "_state_changed" : 1482958978549
      }
    }
  },
  "usuarios" : {
    "hvlksdj" : {
      "edad" : 26,
      "nombre" : "giovanny"
    }
  }
}

如您所见,子节点 postid01second 已更新,创建了一个新子节点,但对于其他位置,这不会发生。

这是我的代码。我根据 Firebase 指南执行了以下操作:

let ref = FIRDatabase.database().reference()
var newPost = ref.childByAutoId()
let newKey = newPost.key  
let dict = ["districts/did01/schools/schoolid01/posts/fifth/\(newKey)" : "test","districts/did01/schools/schoolid01/posts/third/\(newKey)": "test",
                "districts/did01/schools/schoolid01/posts/fourth\(newKey)": "test","districts/did01/schools/schoolid01/posts/postid02\(newKey)": "test",
                "districts/did01/schools/schoolid01/posts/sixth\(newKey)": "test","districts/did01/schools/schoolid01/posts/seventh\(newKey)": "test",
        "districts/did01/schools/schoolid01/posts/eighth\(newKey)": "test", "districts/did01/schools/schoolid01/posts/ninth\(newKey)": "test", "districts/did01/schools/schoolid01/posts/tenth\(newKey)": "test", "districts/did01/schools/schoolid01/posts/eleventh\(newKey)": "test", "districts/did01/schools/schoolid01/posts/postid04\(newKey)" : "test"]

ref.updateChildValues(dict, withCompletionBlock: {(Error,FIRDatabaseReference) in
    if(Error == nil){
    print("EXITO ")
    }else{
    print("AILA ")
    }
    })



Best Answer-推荐答案


我刚刚发现了错误,太简单了,我在字典上弄错了。没有更新的位置是这样写的:

"districts/did01/schools/schoolid01/posts/fourth\(newKey)": "test"

如您所见,最后一部分在 newKey 之前缺少一个“/”。

关于ios - Firebase 中的多路径更新问题具有两个以上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41605574/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4