代码之家  ›  专栏  ›  技术社区  ›  Isaak Osipovich Dunayevsky

Firebase数据库、云函数、规则

  •  3
  • Isaak Osipovich Dunayevsky  · 技术社区  · 8 年前

    如何限制 write 访问 /lastmodified 数据库中名为的表 /functions-project-12345 仅限于云功能, read & write 访问表 /chat 给所有人

    /functions-project-12345
        /lastmodified: 1234567890
        /chat
            /key-123456
                username: "Mat"
                text: "Hey Bob!"
            /key-123457
                username: "Bob"
                text: "Hey Mat"
    
    2 回复  |  直到 8 年前
        1
  •  6
  •   Frank van Puffelen    8 年前

    云函数以管理权限运行,这意味着它们绕过了数据库的安全规则。知道了这一点,根据您的需求保护数据库非常简单:

    {
      "rules": {
        ".write": false,
        "chat": {
          ".write": true
        }
      }
    }
    
        2
  •  1
  •   Anastasiya Mashoshyna    8 年前

    你看过第章吗 Authenticate with limited privileges 在这里: https://firebase.google.com/docs/database/admin/start ?

    这可能是你需要的。

    基本上,您需要使用Admin SDK并使用特定的 uid 和维修钥匙。否则(即,如果您通过触发函数的事件的引用访问数据库),您的函数将具有相同的 uid (和相同的访问权限)作为创建事件的客户端。