当某些内容从关联写入数据库时,我正在尝试触发我的数据库函数。 我知道我需要在其他数据库中创建一个服务帐户以及 firebase 提供的 .json 文件才能正确进行连接。现在,我正在授予所有权限,以确保我的错误不是来自此。
根据我在文档和互联网上找到的其他信息,这就是我登录到其他数据库的方式:
var adminAbi = require("firebase-admin");
var functionsAbi = require('firebase-functions');
const serviceAccount = require(`./serviceacountfile.json`);
adminAbi.initializeApp({
credential: adminAbi.credential.cert(serviceAccount),
databaseURL: 'https://DATABASEURL.firebaseio.com/',
},'test' );
这是我的触发因素:
exports.copyDatabasess = functionsAbi.database.instance('test').ref('/messages/{user_id}/{now}').onWrite(event =>{
if (!event.data.exists()) {
return;
}
console.log('copydatabase', event.params.body);
// Grab the current value of what was written to the Realtime Database.
const original = event.data.val();
});
使用此代码,我现在在部署时收到此错误:
! 函数[复制数据库]:部署错误。配置失败 Firebase 实时数据库触发器:未知错误,HTTP 代码 401
我真的找不到有关此错误以及如何解决它的有用信息。如果有人对此有所了解,将不胜感激。
谢谢建议。
不能在与函数不在同一项目中的数据库上放置触发器。instance()
仅适用于同一项目中的数据库分片。