如何使用Post Url使用uid将文件上传到Firebase存储?

时间:2019-02-26 13:02:54

标签: firebase firebase-authentication http-post postman firebase-storage

我找到了一种使用此链接How to upload objects to Firebase Storage using Postman for testing?无需任何身份验证即可将文件上传到Firebase存储的解决方案
只有当我的Firebase存储看起来像这样(没有任何安全限制)时,上述情况才有效

  allow read, write;

但是,现在我想通过一些安全限制来实现这一目标。 是否可以通过某些安全性限制通过POST URL(Postman)将文件上传到Firebase存储。

我试图通过
实现 https://firebasestorage.googleapis.com/v0/b/projectName.bucketName.com/o?uploadType=media&name=picture2&auth= uid

但是它显示403 - forbidden error.

2 个答案:

答案 0 :(得分:0)

没有用于将文件上传到Cloud Storage for Firebase的公共REST API。您尝试达到的终点仅供Firebase SDK使用,没有文档记录,也没有支持超出此范围的使用。

也就是说,您 可以使用Firebase Authentication REST API铸造令牌,并将其传递给您的请求。但是如前所述,它将不受支持,并且可能在没有警告的情况下进行更改。

REST上载的最常用方法是通过Google Cloud Storage API,Firebase API围绕该API进行了友好的包装。但是,这些API旨在从受信任的代码进行访问,因此不会使用用户的Firebase身份验证UID。我能想到的最好的办法是编写一个处理用户身份验证和授权的Cloud Function,然后使用Google Cloud Storage Node.js或REST API上传文件。

答案 1 :(得分:0)

我在我的项目中使用这个端点 https://firebasestorage.googleapis.com/v0/b/YOUR_BUCKET/o?uploadType=media&name=YOUR_FILE_PATH_AND_NAME

并在您的帖子中添加标题

headers.Add("Authorization", "Bearer " + FirebaseAuthIDToken);
headers.Add("Content-Type", "application/octet-stream");