我正在尝试在从关联者向数据库写入内容时触发我的数据库功能。
我知道我需要在另一个数据库中创建一个服务帐户,以及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();
});
使用此代码,我在部署时立即得到此错误:
!函数[copyDatabasess]:部署错误。配置失败 Firebase实时数据库触发器:未知错误,HTTP代码401
我真的找不到有关此错误的有用信息以及如何解决它。如果有人知道这件事,我将不胜感激 谢谢你的建议。
答案 0 :(得分:2)
您不能将触发器放在与您的函数不在同一项目中的数据库上。 instance()
仅适用于同一项目中的数据库分片。