在本地测试 Cloud Functions 时,Cloud Firestore 模拟器不是 运行

Cloud Firestore emulator not running when testing Cloud Functions locally

我一直在尝试实现一些从 Cloud Firestore 读取数据的 Cloud Functions。我想在本地测试这些,但是我无法将 Cloud Firestore 模拟器设置为 运行。我的假设是这是问题所在,但也可能是其他地方 - 如果是这样,请告诉我。

这是我的函数:

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin'

admin.initializeApp()

//Functions to fetch the documents in the user collection and send them to the client.
export const getUserDocs = functions.https.onRequest((request, response) => {
    admin.firestore().doc('/Users/{documentId}').get()
    .then(snapshot => {
        const data = snapshot.data()
        response.send(data)
    })
    .catch(error => {
        response.status(500).send(error)
    })
})

这是我在 运行 命令 firebase serve --only functions :

时得到的错误
Carlo@Carlos-Air-2 functions % firebase serve --only functions
⚠  Your requested "node" version "8" doesn't match your global version "13"
✔  functions: functions emulator started at http://localhost:5000
i  functions: Watching "/Users/Carlo/app/functions" for Cloud Functions...
✔  functions[getUserSports]: http function initialized (http://localhost:5000/app/us-central1/getUserSports).
i  functions: Beginning execution of "getUserSports"
⚠  functions: The Cloud Firestore emulator is not running, so calls to Firestore will affect production.
⚠  External network resource requested!
   - URL: "http://179.252.163.233/computeMetadata/v1/instance"
 - Be careful, this may be a production service.
⚠  External network resource requested!
   - URL: "http://metadata.google.internal./computeMetadata/v1/instance"
 - Be careful, this may be a production service.
i  functions: Finished "getUserSports" in ~9s

我试过从头开始,卸载并重新安装,但没有成功。 我也在 YouTube 上观看了教程系列,但出于某种原因,我的代码不起作用。

非常感谢任何帮助。

您的输出控制台没有错误。

这只是一个警告,说明您没有在本地 运行ning Firestore,这是完全正常的,因为您 运行 使用 --only functions 命令,因此只启动了 cloud functions 部分(没有 firestore、规则等)

我在尝试 运行 firebase 进行本地测试时遇到以下错误:

Cloud Firestore 模拟器不是 运行ning,因此调用 Firestore 会影响生产。

我做错的是没有 select Firestore 和 Functions(见图)。

然后有许多命令可用于启动本地测试:

  1. firebase 服务
  2. firebase 服务——仅功能
  3. firebase emulators:start --only=functions
  4. firebase emulators:start

最后一个 (#4) 为我解决了这个问题。