Firebase存储:检查用户是否为管理员

Firebase存储:检查用户是否为管理员,firebase,firebase-storage,Firebase,Firebase Storage,我在Firebase存储中有一个文件夹,只有管理员服务帐户才能写入。(更具体地说,该管理服务帐户将只从云功能写入存储) 我想知道如何创建一个规则,防止任何其他用户写入存储桶。有人知道如何实现这个目标吗 我想我可以创建一个规则,禁止写入,除非写入代理的uid与管理员uid匹配,但我还没有找到管理员uid。我尝试登录我的服务帐户,如下所示: import firebase_admin, os from firebase_admin import credentials, initialize_app

我在Firebase存储中有一个文件夹,只有管理员服务帐户才能写入。(更具体地说,该管理服务帐户将只从云功能写入存储)

我想知道如何创建一个规则,防止任何其他用户写入存储桶。有人知道如何实现这个目标吗

我想我可以创建一个规则,禁止写入,除非写入代理的uid与管理员uid匹配,但我还没有找到管理员uid。我尝试登录我的服务帐户,如下所示:

import firebase_admin, os
from firebase_admin import credentials, initialize_app

if not len(firebase_admin._apps):
  cert = os.path.join('src', 'secrets', 'service-account.json')
  initialize_app(credentials.Certificate(cert), {
    'databaseURL': 'https://womp.firebaseio.com/',
    'storageBucket': 'womp.appspot.com/',
  })
然后通过
firebase\u admin.\u apps[0]
对象查看是否可以为用户挖掘uid,但不能使用骰子


如果其他人知道如何创建一个规则来防止除管理员以外的任何用户写入存储实例,我将非常感谢他们提供的任何见解

无法使用安全规则限制对服务帐户的访问。服务帐户总是绕过安全规则

一旦你开始使用服务帐户,他们的访问权就由谷歌云IAM控制,这是完全不同的。您可以使用IAM限制允许哪些服务帐户访问bucket,这将完全独立于您为通过Firebase SDK的最终用户编写的任何安全规则

如果您不希望任何用户直接写入bucket,并且只允许服务帐户,那么bucket的安全规则应该简单地拒绝所有访问

match /{document=**} {
  allow read, write: if false;
}

无法使用安全规则限制对服务帐户的访问。服务帐户总是绕过安全规则

一旦你开始使用服务帐户,他们的访问权就由谷歌云IAM控制,这是完全不同的。您可以使用IAM限制允许哪些服务帐户访问bucket,这将完全独立于您为通过Firebase SDK的最终用户编写的任何安全规则

如果您不希望任何用户直接写入bucket,并且只允许服务帐户,那么bucket的安全规则应该简单地拒绝所有访问

match /{document=**} {
  allow read, write: if false;
}

在许多方面都很有趣。我没意识到这是真的!我想我只是“禁用”对要保护的路径的写访问。非常感谢!在许多方面都很有趣。我没意识到这是真的!我想我只是“禁用”对要保护的路径的写访问。非常感谢!