Firebase-从常量设置字典中的键时,updateChildValues使应用程序崩溃

时间:2018-09-27 05:10:42

标签: ios swift firebase

我要做的就是将用户的电子邮件字符串设置为数据库中的键。我的问题似乎是,每当我使用分配给常量的键设置字典时,updateChildValues方法就会崩溃(在本例中为userEmail)。如果我将键更改为字符串文字,则可以正常工作,但这不是我打算构造此数据库节点的方式。

guard let uid = Auth.auth().currentUser?.uid, let email = Auth.auth().currentUser?.email else {
            // handle
            return
        }

        let groupId = UUID().uuidString
        let userGroupIdValue = ["groupId": groupId]
        let groupName = ["groupName": text]
        let userEmail = [email: 1]

Database.database().reference().child("groups").child(groupId).child("memberEmails").updateChildValues(userEmail, withCompletionBlock: { (error, reference) in

                   // handle errors

                })

如果我将userEmail词典更改为[“ someText”:1],则它工作得很好,常量userGroupIdValue和groupName也是如此。通过我的故障排除,似乎此方法不喜欢Auth.auth()。currentUser中的email属性的事实。以前是可选的,即使我使用的是保护声明。我曾经用过if let语句来解包,但它仍然崩溃。这可能是某种错误吗?

1 个答案:

答案 0 :(得分:0)

很好的firebase支持又回到了我,看来问题出在打开的电子邮件地址中,其中包含“”。在字符串中,并且不允许将此字符与其他几个字符一起在数据库的键中使用。超级令人沮丧,但至少我有一个答案。