ios - Firebase 存储错误

标签 ios swift firebase firebase-storage

FirebaseStorage Pod 版本 (1.0.1)

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

我只是从 ImagePicker 中选择了一张图片,然后尝试将图片数据保存到 firebase 存储中。如 firebase 文档中所示。( Docs Reference) 从内存中的数据上传 部分。

它抛出以下错误:

*** 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

以前使用的相同代码。我不确定现在是什么问题。

最佳答案

原来我们不能将文件放在根存储节点中。需要创建子节点,然后只有你可以保存文件。很明显是mentioned in the Firebase docs不知何故我忽略了它。

例如

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

关于ios - Firebase 存储错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38458458/

相关文章:

ios - 将 ExtAudioFile 放入浮点缓冲区会产生零

android - CardView 内部的 TabLayout

ios - 无法在默认的 iOS 7 日历中创建事件

python - 如何使用IOS访问在线mongoDB数据

iPhone Simulator 6.0 无法在沙盒模式下连接到 gamecenter

arrays - 将数据作为数组发送到 Firebase 给我带来了错误

java - 如何在不指定父文件夹/ref 的情况下迭代 Datasnapshot

ios - 我可以使用 xcode 4.2 为 ios7 升级/制作应用程序吗?

swift - 在 Swift 中,如何将 CGSize 转换为其字符串表示形式?

ios - 每次按下按钮时,如何从标签 "26"中减去 1? (快速初学者)