在 Next JS / Vercel 中查询 Firebase 实时数据库时出现 504 超时

504 timeout when querying Firebase Realtime Database in Next JS / Vercel

我在向 Firebase 实时数据库发出请求时遇到 504 错误(超时)

import admin from "firebase-admin";

if (!admin.apps.length) {
  admin.initializeApp({
    credential: admin.credential.cert({
      project_id: process.env.FIREBASE_PROJECT_ID,
      private_key: process.env.FIREBASE_PRIVATE_KEY.replace(/\n/g, '\n'),
      client_email: process.env.FIREBASE_CLIENT_EMAIL,
    }),
    databaseURL: process.env.FIREBASE_DATABASE,
  });
}

const db = admin.database();

export default async (req, res) => {
  if (req.method === "GET") {
    try {
      const snapshot = await db
      .ref("properties")
      .child(req.query.slug)
      .once("value");
      
      const properties = snapshot.val();

      return res.status(200).json({ total: properties });
    } catch(e) {
      console.error(e);
    }
  }

};

这里出现问题

const snapshot = await db
    .ref("properties")
    .child(req.query.slug)
    .once("value");

我认为 Vercel 应用程序域(即暂存域)需要作为自动域添加到 GCP 中,但我似乎找不到位置。

该请求在本地(在 localhost:3000 上)工作,因此我假设 GCP 中允许本地主机。

关于如何让 Vercel 上的 Next JS 应用在没有 504 超时的情况下与 Firebase 实时数据库对话有什么想法吗?

结束使用 Firebase REST api 查询 firebase 实时数据库