当前位置: 首页 > 知识库问答 >
问题:

Firebase存储URL随着新令牌不断变化

耿敏达
2023-03-14

我试图建立一个使用firebase数据库和存储的社交媒体应用程序。下面是预期的流量。

>

  • 用户上传存储在当前用户文件夹中的firebase存储中的个人资料图片和存储在firebase数据库中的URL以便快速访问。(很好)

    用户发表他们的想法。这样可以在数据库中保存用户信息,如邮件、用户名和配置文件图像URL。(很好)。

    现在的问题是,如果一个用户更新了他或她的个人资料图片,这将覆盖firebase存储中的旧个人资料图片(以便管理存储并使用户图片在所有评论和帖子中都是相同的)。在post message活动中,旧的配置文件图像URL无法访问,导致令牌被更改。

    我想知道如何解决这个问题,这样firebase存储URL将是静态的(这是一样的)增加所有更新。

    用毕加索和非firebase方法获取图像

  • 共有1个答案

    单品
    2023-03-14

    虽然这个问题已经被问了很长时间,但我注意到有些人仍然很难解决这个问题,所以我将在下面提供我的解决方案。

    1.由于存储URL在改变时总是动态的(即posses令牌),我所做的是对存储的图像文件使用通用名称,例如所有用户的化身

    2.在存储中为每个用户创建一个目录,如下所示:users/{uid}/avatar.jpg

    步骤3使用步骤2中的路径拉出或显示图像(见下文)

    Android系统

    StorageReference storageReference = FirebaseStorage.getInstance().getReference("users").child(userId).child("avatar.jpg");
        
    Glide.with(context).using(new FirebaseImageLoader()).load(storageReference).diskCacheStrategy(DiskCacheStrategy.ALL)
                    .error(R.drawable.ch_white_icon).placeholder(R.drawable.ch_white_icon).into(imageView);
    
    var storage = firebase.storage();
        var pathReference = storage.ref('users/' + userId + '/avatar.jpg');
        pathReference.getDownloadURL().then(function (url) {
            $("#large-avatar").attr('src', url);
        }).catch(function (error) {
            // Handle any errors
        });
    

    PS:对于Android系统,不要忘记更改DiskCacheStrategy,全部改为DiskCacheStrategy,如果你不想让glide缓存图像,则没有。如果允许缓存,你可以使用时间戳来获取新的图像。

     类似资料:
    • 我在试图理解令牌在Firebase存储中是如何工作的。 每当我的web应用程序将图像上传到FS,它就会在其公共URL中添加一个令牌。问题是,每当您将同一图像文件上传到web应用程序的另一个部分时,您似乎没有得到另一个文件,而是得到了已经上传的文件url的不同令牌,从而为以前注册的图像显示呈现403错误。 有办法解决这个吗? 如果用户重复这个过程,并在应用程序的另一个部分上传相同的picture.j

    • 我有一个角应用程序使用Firebase存储存储用户上传的照片文件。在用户上传一个文件之后,我调用getDownloadURL()(返回Observable)以获得完整的公共URL路径。我希望将URL字符串存储在Firestore数据库中,以便将其绑定到img html元素src属性,以便在web页面上显示。这将使我不必调用存储API来一个接一个地异步获取每个图像URL。 这个URL在查询字符串中包

    • 我正在尝试从应用程序服务中获取Google的刷新令牌,但我不能。 日志说 2016-11-04T00:04:25 PID[500]收到的详细请求:获取https://noteappsvr.azurewebsites.net/.auth/login/google?access _ type = offline 2016-11-04t 00:04:25 PID[500]从https://account

    • 我有一个关于网址中的“令牌”的问题( https://firebasestorage.googleapis.com/v0/b/someapplication.appspot.com/o/images/sample.png?alt=media 从文档中,它说它返回一个“长寿”的下载网址https://firebase.google.com/docs/reference/js/firebase.sto

    • 对于我们的应用程序,我们需要能够提供团体访问文件。每个用户可能拥有大量的组,因此使用“自定义令牌”解决方案是没有意义的(无论如何,这是非常尴尬的)。 我发现,Firebase的存储安全规则非常有限。主要问题是,我们将组定义保留在存储安全规则无法访问的Firestore中。 为了克服这个问题,我们决定在每个上传文件的元数据中包含一个“令牌”,组中的任何人都可以访问这个令牌。当他们下载一个文件时,他们

    • 这就是我的设想。我有一个POJO类,我们称之为Car,声明如下: 在那个类中,列表 图片应该包含到我实际上传图片的Firebase存储的链接。由于Firebase函数的异步根,我在这方面遇到了问题。在第一个时刻,pictures列表具有图像的本地路径,因为我不希望用户在完成向Firebase数据库添加记录所需的所有步骤之前上传任何内容。所以,我只保存图像的本地路径。但是,一旦数据保存到云中,我当然