2017-10-13 72 views
-1

我有一個奇怪的問題,我總是使用這段代碼來擦除圖像,它始終工作,即使在這個應用程序在其他viewControllers它運作良好。swift firebase存儲NSInternalInconsistencyException

現在我總是得到:

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

刪除在標記/ gruopId文件夾

我試圖打印圖像的URL刪除的圖像:

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小時!

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") 
 
          } 
 
         } 
 
    
 
        } 
 
       } 
 
      } 
 
      
 
     }) 
 
     
 
    }

+0

我認爲問題出在這個路徑上'Markers \(self.groupId!)'而不是你的路徑應該是'Markers/\(self.groupId!)' – 3stud1ant3

回答

0

我發現,即使我不明白,我創建圖像的文件夾手動,以節省時間(是的文件夾的名稱是正確的)問題時,我試圖讓應用程序創建它可以刪除沒有問題,有人可以解釋給我嗎?