应用配置已完成。Firebase:尽管我正在设置数据,但值并没有真实反映Firebase的实时数据库
用于数据的基础上规则被设定为
{
"rules": {
".read": true,
".write": true
}
}
//declaration
var userDB: FIRDatabaseReference!
在viewDidLoad中()
userDB = FIRDatabase.database().reference()
//for reference database
动作方法是像下面
@IBAction func next(_ sender: Any) {
guard fullname.text != "",email.text != "",password.text != "" ,confirmPassword.text != "" else {
return
}
if(password.text == confirmPassword.text)
{
FIRAuth.auth()?.createUser(withEmail: email.text!, password: password.text!, completion: { (user, error) in
if let error = error {
print(error.localizedDescription)
}
if let error = error {
print(error.localizedDescription)
}
if let user = user {
print(user.uid)
let changeRequest = FIRAuth.auth()!.currentUser!.profileChangeRequest()
changeRequest.displayName = self.fullname.text!
changeRequest.commitChanges(completion: nil)
let imageRef = self.userStorage.child("\(user.uid).jpg")
let data = UIImageJPEGRepresentation(self.uploadPictureImageview.image!, 0.5)
let uploadTask = imageRef.put(data!, metadata: nil, completion: { (metadata, err) in
if err != nil {
print(err!.localizedDescription)
}
imageRef.downloadURL(completion: { (url, er) in
if er != nil {
print(er!.localizedDescription)
}
print(url)
if let url = url {
print(url)
let userInfo: [String : String] = ["uid" : user.uid,
"full name" : self.fullname.text!,
"urlToImage" : url.absoluteString]
self.userDB.child("users").child(user.uid).setValue(userInfo)
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "usersVC")
self.present(vc, animated: true, completion: nil)
}
})
})
uploadTask.resume()
}
})
}
else{
print("Password didnot match")
}
}
字典类型已经改变从[String:Any]到[String:String]
数据未保存在Firebase的实时数据库中。我忘了什么吗?
你认证吗? –
yea @AndriySavran 存储正在更新生动 –
他已经制定了Firebase规则,以至于他甚至不必认证用户。你有没有尝试将你的userInfo字典更改为'let userInfo:[String:String] = ...'?你肯定'self.fullname.text!'有价值吗?您是否还从Firebase项目下载了GoogleService-Info.plist文件并将其添加到您的Xcode项目中? – MikeG