2016-07-19 10 views
0

FirebaseStorage Pod Version (1.0.1)Firebase Speicherfehler

var storageRef: FIRStorageReference! = FIRStorage.storage().reference() 


let uploadTask = storageRef.putData(UIImagePNGRepresentation(image)!, metadata: nil) { metadata, error in 
     if (error != nil) { 

     } else { 
      let downloadURL = metadata!.downloadURL 
      print(downloadURL) 
     } 
} 

ich einfach ein Bild von ImagePicker ausgewählt und versucht, Bilddaten an die Feuerbasis Speicher zu speichern. .. Wie in Feuerbasis docs dargestellt (Docs Reference)Hochladen von Daten im Speicher Abschnitt

Es wirft Fehler folgende:.

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[1]' 
*** First throw call stack: 
(
    0 CoreFoundation      0x02025494 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x03eb2e02 objc_exception_throw + 50 
    2 CoreFoundation      0x01f0c6d2 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 386 
    3 CoreFoundation      0x01f2095b +[NSDictionary dictionaryWithObjects:forKeys:count:] + 75 
    4 FirePlay       0x001e42bc -[FIRStorageUploadTask enqueue] + 815 
    5 FirePlay       0x001e010c -[FIRStorageReference putData:metadata:completion:] + 880 

Der gleiche Code vorher funktioniert Ich bin nicht sicher, was jetzt das Problem.

+0

hast du 'print (image)' ??? .. und überprüfen, ob es Null ist oder nicht –

Antwort

4

es stellte sich heraus, dass wir keine Dateien in Stammspeicherknoten setzen. müssen untergeordneten Knoten erstellen und dann können nur Sie die Datei speichern. es war klar mentioned in the Firebase docs irgendwie habe ich es übersehen.

Zum Beispiel

let mountainsRef = storageRef.child("mountains.jpg") 

let uploadTask = mountainsRef.putData(UIImagePNGRepresentation(image)!, metadata: nil) { metadata, error in 
     if (error != nil) { 

     } else { 
      let downloadURL = metadata!.downloadURL 
      print(downloadURL) 
     } 
}