Firebase Swift 数据写入报错排查:指定结构体写法疑问
解决Firebase写入数据的语法错误问题
嘿,我一眼就瞅出你代码里的小问题了——这是把Swift语法和JS风格写法搞混导致的,非常常见的小失误!
你的代码里有两个关键问题:
- 嵌套字典的写法不对:在Swift里,不能直接用
{ "key": value }这种类似JavaScript的对象写法来定义字典,得用Swift标准的["key": value]语法 - 多余的尾逗号:字典最后一个键值对后面加逗号,在Swift的严格语法检查下会报错,得删掉那些多余的逗号
给你修正后的代码:
self.ref.child("Users").child(userID).setValue([ "DatosPersonales": [ "ID": userID, "email": userEmail, "password": userPass, "Nombre": userName, "ImagenProfiel": "0" ], "Progreso": [ "Nivel": "0", "LugaresVisitados": [ "idLugar": "0" ] ] ])
简单说下原因:Firebase的setValue(_:)方法在Swift中接受的是Any?类型,这里我们传入的是嵌套的[String: Any]字典,必须严格遵循Swift的字典语法规则,不能混用其他语言的写法。删掉多余的尾逗号,把所有嵌套的{}换成[],就能正常写入数据啦!
内容的提问来源于stack exchange,提问作者Emmanuel Garcia Martinez
相关产品推荐
相关产品推荐

