如何从Firebase功能向另一个Firebase数据库发出触发器?

时间:2018-05-04 14:57:38

标签: javascript node.js firebase google-cloud-functions

我正在尝试在从关联者向数据库写入内容时触发我的数据库功能。 我知道我需要在另一个数据库中创建一个服务帐户,以及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

我真的找不到有关此错误的有用信息以及如何解决它。如果有人知道这件事,我将不胜感激 谢谢你的建议。

1 个答案:

答案 0 :(得分:2)

您不能将触发器放在与您的函数不在同一项目中的数据库上。 instance()仅适用于同一项目中的数据库分片。