在本地测试 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(见图)。
然后有许多命令可用于启动本地测试:
- firebase 服务
- firebase 服务——仅功能
- firebase emulators:start --only=functions
- firebase emulators:start
最后一个 (#4) 为我解决了这个问题。
我一直在尝试实现一些从 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(见图)。
然后有许多命令可用于启动本地测试:
- firebase 服务
- firebase 服务——仅功能
- firebase emulators:start --only=functions
- firebase emulators:start
最后一个 (#4) 为我解决了这个问题。