【问题标题】:request Auth firebase storage js请求身份验证 Firebase 存储 js
【发布时间】:2021-10-25 22:37:16
【问题描述】:

您好,我正在使用 Firebase 存储来存储一些图像。

我一直在使用这些访问规则

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
        allow read, write;
    }
  }
}

但现在我想创建一个“小障碍”,所以我正在使用它

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
        allow read, write: if request.auth != null;
    }
  }
}

问题是我不知道如何验证我的请求

这在规则更改之前有效

await storage.ref('images/' + id).put(image.data, {contentType: image.mimetype})

但现在我做不到,所以我尝试了一些方法,但它不起作用

await storage.ref('images/' + id).put(image.data, {
    contentType: image.mimetype,
    auth: true
})
await storage.ref('images/' + id).put(image.data, {
    contentType: image.mimetype,
    auth: {
        uid: "",
        token: {
            sub: "",
            aud: "x",
            email: "",
            email_verified: false,
            phone_number: "",
            name: "",
            firebase: {
                sign_in_provider: "google.com"
            }
        }
    }
})
await storage.ref('images/' + id).put(image.data, {
    contentType: image.mimetype,
    request: {
        auth: {
            uid: ""
        }
    }
})

【问题讨论】:

    标签: firebase firebase-storage firebase-security


    【解决方案1】:

    您不必向请求传递任何内容。用户必须使用 Firebase 身份验证登录。 Firebase SDK 将为您处理身份验证部分。安全规则仅适用于 Firebase 身份验证,因此请确保您已使用任何提供商登录。

    您可以在documentation找到注册新用户或登录现有用户的示例

    【讨论】:

      猜你喜欢
      • 2020-06-26
      • 2021-07-30
      • 1970-01-01
      • 2017-03-16
      • 2017-06-07
      • 1970-01-01
      • 2022-09-29
      • 2013-10-12
      • 1970-01-01
      相关资源
      最近更新 更多