2017-03-04 71 views
2

使用getDownloadUrl FirebaseStorage时,我有一个关于url中的“令牌”(& token =)的问题。Firebase存储getDownloadUrl的令牌有效性

https://firebasestorage.googleapis.com/v0/b/someapplication.appspot.com/o/images%2Fsample.png?alt=media&token=123456

从文档,它说,它返回一个 “长住” 下载网址 https://firebase.google.com/docs/reference/js/firebase.storage.Reference#getDownloadURL

问题是,IM节省将downloadURL在FirebaseDatabase像

-chatroom 
    - c1 
    - m1 
     -message: "Sent a photo" 
     -photoUrl: downloadUrl here 

从我了解它不是一生的标记,因此在某个时刻该标记将无效。所以当我在ImageView中显示这个URL时,它不会加载图像。

Picasso.with(context) 
    .load(downloadUrl) 
    .into(imageView) 

我明白我可以在firebase中使用类似的东西来生成一个新的。

StorageReference sr = getReferenceFromUrl(downloadUrl) 
//pseudo-code 
sr.getDownloadUrl().addOnSuccessListener((Uri newUri) => { 
    Picasso.with(context) 
    .load(newUri) 
    .into(imageView) 
}); 

但是!这个过程有一个总是在这个过程中得到一个新的下载url的开销。

令牌再次活动多久?此外,如果它不是一个生命的标记,我们应该如何正确存储下载地址?

回答

2

Firebase存储令牌不会过期。

它们可能会从Firebase控制台撤消,这会基于它们使URL失效。

+0

有谁知道我在哪里可以找到说这个文档?我找不到任何东西。 [下载图片的官方文档](https://firebase.google.com/docs/storage/web/download-files)没有说什么,我想这是个好消息。 –

+0

这看起来不对。我使用从'put()'返回的任务中提供的firebase存储Web API中的下载URL。 (在监视器上载进度下,文档位于https://firebase.google.com/docs/storage/web/upload-files)。没有提到过期,但现在几个月后,我的下载链接解析为此XML:'ExpiredToken提供的令牌已过期。

请求已过期:1511581939
' – matth

+0

这很可能意味着您的令牌已被吊销。 –