从'[[String:Any]]'转换为不相关的类型'[String:Any]'总是在FireBase Swift中失败

时间:2018-02-18 00:07:29

标签: ios swift xcode firebase

嘿我试图简单地将databaseList变量放在.updateChildValues(databaseList)中

代码:

       var databaseList = [[String: Any]]()

       Database.database().reference().child(childref).child(Auth.auth().currentUser!.uid).child("node").updateChildValues((databaseList as? [String: Any])!) { (error, value) in
            if error != nil {
                print("Error")
                return
            } else {
                print("Success")
            }
        }
  

警告:从'[[String:Any]]'转换为无关类型'[String:Any]'始终失败

Attemp number 2 Code:

Database.database().reference().child(childref).child(Auth.auth().currentUser!.uid).child("node").updateChildValues(databaseList)
  

红色错误:无法将'[[String:Any]]'类型的值转换为预期的参数类型'[AnyHashable:Any]'

还要注意我需要使用databaseList来保持[String:Any]

3 个答案:

答案 0 :(得分:0)

您明确声明databaseList[[String:Any]]而不是[String: Any]

var databaseList = [[String: Any]]()

将此更改为

var databaseList = [String: Any]()

答案 1 :(得分:0)

您无法将一系列词典放入Firebase。但是,你可以做的是遍历你的databaseList对象,并在你的引用下创建一个唯一的密钥来存储这个字典。

答案 2 :(得分:0)

[]表示数组,而[:]表示字典。 [String: Any]表示字典,其所有键都是字符串。 var databaseList = [String: Any]您正在创建一个字典数组。在下一次尝试中,您尝试从已声明为数组的变量中转换字典。所以它失败了。

解      var databaseList = [String: Any] ()