Cloud Functions for Firebase - 即使管理员已初始化,权限也被拒绝
Cloud Functions for Firebase - Getting permission denied even with admin initialized
我使用 firebase-admin
设置我的云函数,例如:
const admin = require('firebase-admin');
const fn = require('firebase-functions');
admin.initializeApp(fn.config().firebase);
但是,我在写入数据库时获得的权限被拒绝。奇怪的是,它只发生在某些集合中,而不是所有集合中。有些有效,有些则无效。
我对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( // );
})
要从 DeltaSnapshot provided in an event, use adminRef 获得对数据库的完全访问权限:
Returns a Reference to the Database location where the triggering
write occurred. Similar to ref, but with full read and write access
instead of end-user access
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( // );
})
我使用 firebase-admin
设置我的云函数,例如:
const admin = require('firebase-admin');
const fn = require('firebase-functions');
admin.initializeApp(fn.config().firebase);
但是,我在写入数据库时获得的权限被拒绝。奇怪的是,它只发生在某些集合中,而不是所有集合中。有些有效,有些则无效。
我对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( // );
})
要从 DeltaSnapshot provided in an event, use adminRef 获得对数据库的完全访问权限:
Returns a Reference to the Database location where the triggering write occurred. Similar to ref, but with full read and write access instead of end-user access
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( // );
})