2016-08-27 4 views
0

나는 신속하고 firebase를 사용하여 아이폰 OS 응용 프로그램에서 일하고 있습니다.사용자 uid 오류! (스위프트 및 파이어베이스 프로젝트)

등록 된 사용자가 장치를 추가 할 수있는 장치 추가라는보기가 있습니다. 단순히 장치 이름, 설명, 범주를 입력하고 이미지를 추가 한 다음 장치 추가 버튼을 클릭하면됩니다.

여기에 등록 된 사용자의 정보를 포함하는 현재의 대시 보드는 다음과 같습니다

{ 
"UserProfile" : { 
"1EJ8QmEQBJfBez7PMADbftCjVff1" : { 
    "city" : "الرياض", 
    "email" : "[email protected]", 
    "name" : "Norah", 
    "phone" : "0564695353" 
}, 
"97PUAcUC5UYxLpBOLnC4yQjxiEf2" : { 
    "city" : "Riyadh", 
    "email" : "[email protected]", 
    "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

Btw는 머라이어, 당신은 장치 노드를 만들려고 노력하는 방법, 난, 당신은 하나의 장치 만 값이 이전의 교체로 끝날 것이라고 생각 특정 장치, 즉'Device1' 노드에 있지 않다 ... – Dravidian

+0

@ Dravidian I Know, 나는 이것이 두 가지 질문이라고 생각 했으므로 두 번째 질문에 대답하지 않았습니다. 나는 그 일을하는 방법을 찾고있다. 도울 수 있니? – Mariah

+0

@ Dravidian 아직 JSON의 구조가 확실하지 않습니다. 중첩 된 구조라고 생각합니다! – Mariah

답변

1

그냥 교체

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

self.ref.child("Devices").child(FIRAuth.auth()!.currentUser!.uid).setValue(DeviceInfo) 
관련 문제