代码之家  ›  专栏  ›  技术社区  ›  Padawan

google cloud将https post call access firebase数据库作为非管理员来应用规则

  •  1
  • Padawan  · 技术社区  · 6 年前

    我的问题和发现的问题非常相似 here 然而,这个问题似乎从未得到充分的回答。

    我在云函数中有一组https post调用,它们会写入我的firebase实时数据库。

    例如:

    app.post('/api/dosomething', (req, res) => {
        //implementation...
    });
    

    问题是,当我以管理员身份向数据库写入时,所有安全规则都会被忽略。

    import * as functions from 'firebase-functions';
    const admin = require('firebase-admin')
    admin.initializeApp(functions.config().firebase)
    

    我厌倦了以下工作,但在我的函数日志中收到一个错误

    const nonadmin = require('firebase')
    nonadmin.initializeApp(functions.config().firebase);
    

    我在查找有关如何获取非管理员数据库引用的文档时遇到问题。我读过这篇文章 here 但是,这是基于触发器并使用返回的事件对象。在我的cloud函数中,我使用的是post请求。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Doug Stevenson    6 年前

    为了应用安全规则,目前无法修改FireStore SDK的作用域,使其作为特定用户工作。这是工程团队正在研究的问题。

    你提到的问题已经过时了。从函数sdk 1.0版开始, event.data.ref (对于实时数据库)不再适用于进行更改的用户。同样,团队正在寻找替代方案。

        2
  •  0
  •   Rosário Pereira Fernandes Aabid Ansar    6 年前

    FireBase当前没有nodejs客户端库。

    如果您确实需要应用安全规则,可以使用 REST API . 您可以调用HTTP客户机来保存/检索数据,比如 axios 例如。