当前位置: 首页 > 面试题库 >

只允许对Firebase的Cloud Functions进行写访问

李景天
2023-03-14
问题内容

我们如何能够通过只允许火力地堡云功能将数据写入到特定位置的规则安全数据库,以前有以UID添加到管理客户机的选择databaseAuthVariableOverride和使用规则节UID,但现在我们通过初始化admin.initializeApp(functions.config().firebase);,所以我不确定如何添加其他参数

编辑 是为此发起证书的好主意吗?即

admin.initializeApp({
  credential: admin.credential.cert("/path-to-cert"),
  databaseURL: "database-url",
  databaseAuthVariableOverride: { uid: "some-id" }
});

admin.initializeApp(functions.config().firebase)上面有什么好处,functions.config()实际上是从哪里获取数据,这不只是节点模块吗?


问题答案:

通常,在Cloud Functions代码的顶部,您具有:

var functions = require('firebase-functions');

作为firebase- functions节点模块的一部分,您可以访问,functions.config().firebase它只是一个对象,它具有初始化Admin
SDK所需的一切,包括数据库URL和凭据实现(基于Application Default
Credentials)。如果您console.log(functions.config().firebase)在代码中,将看到它只是具有这些属性的对象,以及可能要在代码中使用的其他一些对象。

您可以添加databaseAuthVariableOverride到此对象以限制Admin
SDK的特权
。您可以覆盖对象本身:

var firebaseConfig = functions.config().firebase;
firebaseConfig.databaseAuthVariableOverride = {
  uid: 'some-uid',
  foo: true,
  bar: false
};
admin.initializeApp(firebaseConfig);

或者,您可以使用类似的Object.assign()方法将相关详细信息复制到新对象中:

var firebaseConfig = Object.assign({}, functions.config().firebase, {
  databaseAuthVariableOverride: {
    uid: 'some-uid',
    foo: true,
    bar: false
  }
});
admin.initializeApp(firebaseConfig);


 类似资料:
  • 我最近开始使用firebase存储数据,并将我的规则临时设置为public。我不想添加用户身份验证,而是想知道是否可以设置firebase规则,以便只有我的域可以读写数据。

  • 我当前的Android应用程序使用Firebase实时数据库。 我正在与安全规则作斗争,因为我希望只允许单个用户写入数据,同时允许任何经过身份验证的用户读取数据。 我制定了这些规则,但不确定它们是否足够安全。。。 其中“XXXXXXXXXXXXXXXXXXXX”是我希望允许写入数据的指定用户。 用户的uid是常量值吗? 在测试新规则时,单击“模拟”按钮时,“验证”选项管理什么?

  • 本文向大家介绍PHP 只允许指定IP访问(允许*号通配符过滤IP),包括了PHP 只允许指定IP访问(允许*号通配符过滤IP)的使用技巧和注意事项,需要的朋友参考一下 核心函数代码如下: 在需要检测的地方 加上调用 check_ip(); 即可;  本函数提供只允许指定的IP访问文件,并提供IP中*号通配符 匹配多IP 

  • 问题内容: 我正在尝试使用Java中的Selenium来获取用户的地理坐标,但是使用IP地址不够准确,因此我想使用该网站http://www.whataremycoordinates.com/,但是它无法正常工作,我猜这是因为您必须允许位置使用,所以无论如何我都可以在Selenium中使用位置使用,或者也许可以通过其他方法来获取确切的地理坐标 问题答案: 通常,当站点想要获取此类数据时,浏览器会询

  • 来自ISO/IEC 9899:201x第5.1.2.3节程序执行第4段: 关于volatile对象,这里允许的优化是什么?有人能给出一个可以优化掉的易失性访问的例子吗? 由于Volatile访问是一种可观察的行为(在第6段中描述),似乎没有任何优化可以针对Volatile进行,所以,我很想知道第4节中允许的优化是什么。

  • 我正在尝试建立一个只有我可以编写的Firebase数据库。所以没有用户有权编写任何东西。但每个人都可以阅读它。 然而,我无法为它制定规则。我使用电子邮件/密码登录创建了一个管理员用户,我知道它的UID。假设我的UID是: 我尝试了这两种方法,但它们不允许我写入数据库。 . 那么,如何只允许一个具有特定UID的用户向数据库写入任何内容呢?