【问题标题】:FIREBASE FATAL ERROR: Database initialized multiple timesFIREBASE 致命错误:数据库初始化多次
【发布时间】:2020-12-16 16:58:08
【问题描述】:

我的 firebase 应用中有多个数据库实例。我正在尝试在 firebase 云函数中写入三个数据库实例。遵循此document 我的理解是无需为每个数据库实例初始化多个应用程序。我们可以初始化一个并传入数据库 url。作为旁注,我有另一个具有类似功能的函数,我在一个数据库中触发事件并将数据写入其他数据库实例,它工作正常。

import * as functions from "firebase-functions";
import * as admin from "firebase-admin";
const app = admin.app();

export const onStart = 
functions.database.instance('my-db-1')
        .ref('path')
        .onCreate(async (snapshot, context) => {
    return await onCreate('my-db-1',snapshot,context);
        });
 export const onStartDb01 = functions.database.instance('my-db-2')
        .ref('path')
        .onCreate(async (snapshot, context) => {
            return await onCreate('my-db-2', snapshot, context);
        });

async function onCreate(dbInstance: string, snapshot: 
functions.database.DataSnapshot, context: functions.EventContext): 
Promise<any> {
    const defaultDb = app.database(defaultDbUrl);
    const actvDb = app.database(actvDbUrl);

    await defaultDb.ref('path')
        .once("value")
        .then(snap => {
        const val = snap.val();
         ---do something and write back---
       });
    await actvDb.ref('path')
        .once("value")
        .then(snap => {
        const val = snap.val();
        ---do something and write back---
    });
    return true;    
 }

但是当一个 db 事件被触发时,它会记录如下错误

错误:FIREBASE 致命错误:数据库已初始化多次。请确保数据库 URL 的格式与每个 database() 调用匹配。

【问题讨论】:

  • 请编辑问题以显示未按预期方式工作的整个代码。尤其是如何初始化每个变量。该问题应包含足够的信息,以便任何人都可以重现该问题。
  • 它在我看来仍然不完整。 defaultDbInstancesecondDb 到底是什么?他们在这里没有任务。
  • @DougStevenson 它们是数据库名称。

标签: firebase firebase-realtime-database google-cloud-functions


【解决方案1】:

您需要为每个数据库实例初始化一个单独的app()

根据 Doug 的回答 here 应该是这样的:

const app1 = admin.initializeApp(functions.config().firebase)
const app2 = admin.initializeApp(functions.config().firebase)

然后:

const defaultDb = app1.database(defaultDbUrl);
const actvDb = app2.database(actvDbUrl);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-12
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 2017-06-21
    • 1970-01-01
    相关资源
    最近更新 更多