代码之家  ›  专栏  ›  技术社区  ›  Victor Torrens

如何从Firebase函数将触发器放入另一个Firebase数据库?

  •  0
  • Victor Torrens  · 技术社区  · 6 年前

    当某个同事向数据库写入某个内容时,我试图触发我的数据库功能。 我知道我需要在其他数据库和中创建一个服务帐户。firebase提供的用于正确连接的json文件。现在,我正在授予所有权限,以确保我的错误不是由此产生的。
    根据我在文档中找到的内容和internet上的其他信息,以下是我登录到其他数据库的方式:

    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(); 
    });
    

    使用此代码,我现在在部署时遇到以下错误:

    哦!函数[CopyDatabases]:部署错误。未能配置 Firebase实时数据库触发器:未知错误,HTTP代码401

    我真的找不到关于这个错误以及如何解决它的有用信息。如果有人对此有所了解,我们将不胜感激。
    谢谢你的建议。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Doug Stevenson    6 年前

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