适用于Firebase的云功能 - 即使管理员已初始化,也会取消权限

CEN*_*EDE 3 firebase google-cloud-functions firebase-admin

我用以下方式设置我的云功能firebase-admin:

const admin = require('firebase-admin');
const fn = require('firebase-functions');

admin.initializeApp(fn.config().firebase);
Run Code Online (Sandbox Code Playgroud)

但是,我在写入数据库时​​获得了许可.奇怪的是它只发生在某些集合中,而不是发生在所有集合中.有些是作品,有些则不然.

我的理解admin.initializeApp(fn.config().firebase);是,这将允许我的云功能对数据库具有绝对的权力,无论如何security rules.

这是错误:

在此输入图像描述

编辑

我写这样的数据.

exports.foo = fn.database.ref('some-path').onWrite(e => {
    // some handling
    const ref = e.data.ref;

    return ref.child('bar').set('some-data').then( // ).catch( // );
})
Run Code Online (Sandbox Code Playgroud)

Bob*_*der 5

要从事件中提供的DeltaSnapshot获得对数据库的完全访问权限,请使用adminRef:

返回对发生触发写入的数据库位置的引用.与ref类似,但具有完全读写访问权限,而不是最终用户访问权限

exports.foo = fn.database.ref('some-path').onWrite(e => {
    // some handling
    const ref = e.data.adminRef;  // <== CHANGED

    return ref.child('bar').set('some-data').then( // ).catch( // );
})
Run Code Online (Sandbox Code Playgroud)