0
votes

I recently updated my Firebase pods and now receive this error: "Initializer for conditional binding must have Optional type, not 'String' " for the second line of code.

storageRef.downloadURL { (url, error) in
     guard let url = url, let profileImageUrl = url.absoluteString else { return }
     let values = ["name": name, "email": email, "profileImageUrl": profileImageUrl]
     self.registerUserIntoDatabaseWithUID(uid: uid, values: values as [String: AnyObject])
}
1

1 Answers

0
votes

Please ⌥-click on the arguments in the optional binding expression, you will see that absoluteString is declared as non-optional. A non-optional cannot be conditional bound as the error message states.

Bind only url and add absoluteString in values:

storageRef.downloadURL { (url, error) in
     guard let url = url else { return }
     let values = ["name": name, "email": email, "profileImageUrl": url.absoluteString]
     self.registerUserIntoDatabaseWithUID(uid: uid, values: values as [String: AnyObject])
}