我正在使用swift和firebase开发iOS应用程序。
我有一个名为add device的视图,注册用户可以在其中添加设备。 只需他/她可以输入设备名称,描述,类别并添加图像,然后单击添加设备按钮。
以下是包含注册用户信息的当前仪表板:
{
"UserProfile" : {
"1EJ8QmEQBJfBez7PMADbftCjVff1" : {
"city" : "الرياض",
"email" : "noura@gmail.com",
"name" : "Norah",
"phone" : "0564695353"
},
"97PUAcUC5UYxLpBOLnC4yQjxiEf2" : {
"city" : "Riyadh",
"email" : "mawada2017@gmail.com",
"name" : "Mawada",
"phone" : "0534260282"
}
}
}
我想将设备信息添加到另一个节点。
这是按钮:
@IBAction func AddDeviceButton(sender: AnyObject) {
if DeviceName.text == "" || Description.text == "" || ImageView.image == nil {
let alert = UIAlertController(title: "عذرًا", message:"يجب عليك تعبئة معلومات الجهاز كاملة", preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "نعم", style: .Default) { _ in })
self.presentViewController(alert, animated: true){}
} else {
let imageName = NSUUID().UUIDString
let storageRef = FIRStorage.storage().reference().child("Devices_images").child("\(imageName).png")
if let uploadData = UIImagePNGRepresentation(self.ImageView.image!) {
storageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in
if error != nil {
print(error)
return
}
let profileImageUrl = metadata?.downloadURL()?.absoluteString
let DeviceInfo = [
"ImageUrl":profileImageUrl!,
"DeviceName":self.DeviceName.text!,
"Description":self.Description.text!,
"Category":self.itemSelected
]
self.ref.child("Devices").child(user!.uid).setValue(DeviceInfo)
})
}
}
在这一行:
self.ref.child("Devices").child(user!.uid).setValue(DeviceInfo)
视图无法识别uid!
为什么呢?
答案 0 :(得分:1)
只需替换
self.ref.child("Devices").child(user!.uid).setValue(DeviceInfo)
带
self.ref.child("Devices").child(FIRAuth.auth()!.currentUser!.uid).setValue(DeviceInfo)