如何使用Swift将图片上传到Firebase 3.0后正确获取图片网址

时间:2016-08-04 18:50:13

标签: swift firebase firebase-storage

我试图在我的应用中显示上传到Firebase存储的图片,为此我想将网址保存到Firebase数据库。

这就是我上传到Firebase的方式:

            let storageRef = FIRStorage.storage().reference()
            let imagesRef = storageRef.child("images/pato.png")

            let data  = UIImagePNGRepresentation(imageSelectorImage.image!)

            let uploadTask = imagesRef.putData(data!, metadata: nil, completion: { (metadata, error) in
                if(error != nil) {
                    print("Upload error")
                } else {
                    let downloadURL = metadata!.downloadURL()

                    print("\(downloadURL)")
                }
            })

在downloadURL中我得到类似https://firebasestorage.googleapis.com/v0/b/mytestapp-5a7f.appspot.com/o/images%2Fpato.png?alt=media&token=7b080333-8671-4bc2-994f-2cc9a9b76178

的内容

我测试了,我确实设法从我的应用程序中的URL显示此图像,我的问题是关于此URL中的令牌,这会永远持续吗?(因为如果我尝试访问没有令牌的图像,没有任何回报。)

这是保存在Firebase数据库中的正确网址吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

下载网址中的令牌只是一个随机生成的字符串,使得该网址无法访问。它不会过期,也不会与任何特定的用户帐户绑定。

因此,Firebase文档并未专注于令牌。相反,它表示下载URL是一个公开但可以取消的URL。