2017-10-13 2 views
-1

이상한 문제가 있습니다. 항상이 코드를 사용하여 이미지를 지우고 항상 효과적이었습니다. 다른 viewController의이 응용 프로그램에서도 잘 작동합니다.신속한 firebase 저장소 NSInternalInconsistencyException

지금 난 항상 얻을 :

uncaught exception 'NSInternalInconsistencyException', reason: 'URL scheme must be one of gs://, http://, or https:// ' 

내가 삭제 이미지의 URL을 인쇄하려고 마커/gruopId 폴더에 삭제할 수있는 이미지 :

https://firebasestorage.googleapis.com/v0/b/firebase-itsthere.appspot.com/o/Markers%2F-KwKLgt2saNQpZiJuexi%2FC75EE058-61C3-47DB-AFAC-FE18078A0A7F? 

및 imageRef을 :

gs://firebase-*******.appspot.com/Markers/-KwKLgt2saNQpZiJuexi/C75EE058-61C3-47DB-AFAC-FE18078A0A7F 

둘 다 괜찮습니다. 왜 이걸 ??

6 시간을 낭비 해주세요.

+0

이 경로는'Markers \ (self.groupId!)'경로에 있었고 경로는'Markers/\ (self.groupId!)'여야한다고 생각합니다. – 3stud1ant3

답변

0
나는 내가 수동으로 (예 폴더의 이름이 옳았다) 시간을 절약하기 위해 이미지의 폴더를 생성하고, 그것을 이해할 수없는 경우에도 문제가 발견

let storageRef = Storage.storage().reference(withPath: "MarkersMarkers\(self.groupId!)") 
 

 
     pictureOfGroup.child(self.groupId!).observe(.value, with: { (snapshot) in 
 
      if snapshot.exists(){ 
 
       if let snapshots = snapshot.children.allObjects as? [DataSnapshot] { 
 
             
 
        for snap in snapshots { 
 
     
 
         
 
         let dict = snap.value as! [String: Any] 
 
         
 
         let imgToDelete = dict["image"] as! String 
 
         
 
         print(imgToDelete, "imgToDelete") 
 

 
         let url = imgToDelete 
 
         
 
         let imageRef = storageRef.storage.reference(forURL: url) 
 
         
 
         print(imageRef) 
 
         
 
          imageRef.delete { (error) in 
 
          if error != nil { 
 
           // Uh-oh, an error occurred! 
 
           print("error0: \(String(describing: error))") 
 
          } else { 
 
           // File deleted successfully 
 
           print("deleted") 
 
          } 
 
         } 
 
    
 
        } 
 
       } 
 
      } 
 
      
 
     }) 
 
     
 
    }
때 난 아무 문제없이 삭제할 수있는 응용 프로그램을 만들려고했는데, 누군가 나에게 설명 할 수 있을까?