用户uid错误! (Swift和Firebase项目)

时间:2016-08-27 15:34:32

标签: ios swift xcode firebase firebase-realtime-database

我正在使用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!

为什么呢?

1 个答案:

答案 0 :(得分:1)

只需替换

self.ref.child("Devices").child(user!.uid).setValue(DeviceInfo)

self.ref.child("Devices").child(FIRAuth.auth()!.currentUser!.uid).setValue(DeviceInfo)