【问题标题】:Firebase Functions Cannot read property 'databaseURL'Firebase 函数无法读取属性“databaseURL”
【发布时间】:2021-09-30 23:45:48
【问题描述】:

我的 Firebase 函数日志中不断出现以下错误

TypeError:无法读取 repoManagerDatabaseFromApp 中未定义的属性“databaseURL”

这是我的代码,不确定我做错了什么

exports.dynamicMetaTagsUpdate = functions.https.onRequest(async (request, response) => {
  console.log("dynamicMetaTagsUpdate Called");

  const html = fs.readFileSync("./index.html", "utf8");
  const {id} = request.query;
  const botDetector = new BotDetector();
  const userAgent = request.headers["user-agent"].toString();
  const bot = botDetector.parse(userAgent);
  if (bot || DEBUG_BOT) {
    try {
      console.log("try");

      const dbRef = firebase.database().ref("https://wiijii-visualizations-default-rtdb.firebaseio.com/");
      dbRef.child("charts").child(id).get().then((snapshot) => {
        if (snapshot.exists()) {
          console.log(snapshot.val());
        } else {
          console.log("No data available");
        }
      }).catch((error) => {
        console.error(error);
      });

      return response.send(html);
    } catch (e) {
      console.log(e);
      return response.send(html);
    }
  }
  return response.send(html);
});

【问题讨论】:

    标签: node.js firebase-realtime-database google-cloud-functions


    【解决方案1】:

    通常您会在 Cloud 函数中使用 Firebase Admin SDK 而不是客户端 SDK。当您使用admin.database() 时,它会返回默认应用程序的数据库服务。这实质上意味着您将获得已部署 Cloud 功能的 Firebase 项目的数据库实例。

    import * as admin from "firebase-admin"
    
    // Default app
    admin.initializeApp()
    const database = admin.database()
    

    仅当您在单个 Cloud 函数中使用多个 Firebase 项目(或 Admin SDK 实例)时,您才需要在这些方法中传递任何参数。如果需要,您可以在documentation 中找到有关初始化多个实例的更多信息。

    【讨论】:

      【解决方案2】:

      我在这里工作是我的代码

      console.log("try");
            const ref = admin.database().ref("charts");
            console.log("ref");
            console.log(ref);
      
            ref.child(id).get().then((snapshot) => {
              if (snapshot.exists()) {
                console.log(snapshot.val());
              } else {
                console.log("No data available");
              }
            }).catch((error) => {
              console.error(error);
            });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-30
        • 2018-04-01
        • 2020-03-26
        • 2018-09-13
        相关资源
        最近更新 更多