如何使用 Post Url 使用 uid 将文件上传到 firebase 存储?
How to upload the files to firebase storage with uid using Post Url?
我找到了一种解决方案,无需任何身份验证即可使用此 link
将文件上传到 firebase 存储
上述案例仅在我的 firebase 存储看起来像这样时有效,(没有任何安全限制)
allow read, write;
但是,现在我想通过一些安全限制来实现这一点。
有什么方法可以通过 POST URL (邮递员)将文件上传到 firebase 存储,但有一些安全限制。
我试图通过
实现这一点
https://firebasestorage.googleapis.com/v0/b/projectName.bucketName.com/o?uploadType=media&name=picture2&auth=uid
但是显示403 - forbidden error.
没有 public REST API 用于将文件上传到 Cloud Storage for Firebase。您尝试达到的终点仅供 Firebase SDK 使用,既没有记录,也不支持超出此范围的使用。
也就是说,您 可能 能够使用 Firebase Authentication REST API 铸造一个令牌,并将其传递给您的请求。但如前所述,它不会得到支持,并且可能会在没有警告的情况下更改。
最常见的 REST 上传方法是通过 Google 云存储 API,Firebase API 是一个友好的包装器。但是这些 APIs 是为了从受信任的代码访问,所以不会使用用户的 Firebase 身份验证 UID。我能想到的最好的办法是编写一个处理用户身份验证和授权的 Cloud Function,然后使用 Google Cloud Storage Node.js 或 REST API 上传文件。
我在我的项目中使用这个端点
https://firebasestorage.googleapis.com/v0/b/YOUR_BUCKET/o?uploadType=media&name=YOUR_FILE_PATH_AND_NAME
并在您的 post
上添加 headers
headers.Add("Authorization", "Bearer " + FirebaseAuthIDToken);
headers.Add("Content-Type", "application/octet-stream");
我找到了一种解决方案,无需任何身份验证即可使用此 link
将文件上传到 firebase 存储
上述案例仅在我的 firebase 存储看起来像这样时有效,(没有任何安全限制)
allow read, write;
但是,现在我想通过一些安全限制来实现这一点。 有什么方法可以通过 POST URL (邮递员)将文件上传到 firebase 存储,但有一些安全限制。
我试图通过
实现这一点
https://firebasestorage.googleapis.com/v0/b/projectName.bucketName.com/o?uploadType=media&name=picture2&auth=uid
但是显示403 - forbidden error.
没有 public REST API 用于将文件上传到 Cloud Storage for Firebase。您尝试达到的终点仅供 Firebase SDK 使用,既没有记录,也不支持超出此范围的使用。
也就是说,您 可能 能够使用 Firebase Authentication REST API 铸造一个令牌,并将其传递给您的请求。但如前所述,它不会得到支持,并且可能会在没有警告的情况下更改。
最常见的 REST 上传方法是通过 Google 云存储 API,Firebase API 是一个友好的包装器。但是这些 APIs 是为了从受信任的代码访问,所以不会使用用户的 Firebase 身份验证 UID。我能想到的最好的办法是编写一个处理用户身份验证和授权的 Cloud Function,然后使用 Google Cloud Storage Node.js 或 REST API 上传文件。
我在我的项目中使用这个端点 https://firebasestorage.googleapis.com/v0/b/YOUR_BUCKET/o?uploadType=media&name=YOUR_FILE_PATH_AND_NAME
并在您的 post
上添加 headersheaders.Add("Authorization", "Bearer " + FirebaseAuthIDToken);
headers.Add("Content-Type", "application/octet-stream");