javascript - 如何使用 Cloud Function 获取 Firestore 集合?
问题描述
我是后端开发的新手,正在尝试编写一个可以在 FireStore 中读取、写入和编辑数据的云函数。我为写入(添加新数据)做了云功能。但是,我无法读取工作。如果您能帮助我阅读和编辑,我将不胜感激。谢谢!
Firestore structure:
UserProfile
|
+--wWXaLpiOKegAMw6Jhsdf -- {"name": "Danny", "dob": "01/01/2000"}
|
|
+--Ksfe7segse8tPs2pe1Qu -- {"name": "David", "dob": "11/29/1994"}
|
|
+--Udfuwoi8se9g7rdw65dh -- {"name": "Sherry", "dob": "07/21/1997"}
.
.
.
//index.js
const functions = require("firebase-functions");
const admin = require('firebase-admin');
admin.initializeApp();
const edit = require('./edit.js');
const read = require('./read.js');
exports.edit = functions.https.onRequest((request, response) => {
return edit.edit(request, response);
});
exports.read = functions.https.onRequest((response) => {
return read.read(response);
});
//read.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
exports.read = functions.https.onRequest(async (response) => {
await admin.firestore().collection('UserProfile').get().then(snapshot => {
snapshot.forEach(doc => {
let arr = {
name: doc.data().name,
dob: doc.data().dob
}
response.json({result: arr });
})
})
})
错误:“TypeError:response.json 不是函数”
//edit.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
exports.edit = functions.https.onRequest(async (request, response) => {
await admin.firestore().collection('UserProfile').get().then(snapshot => {
snapshot.forEach(doc => {
if (request.body.id == doc.id) {
doc.data().name = request.body.name,
doc.data().dob = request.body.dob
}
const result = {
name = request.body.name,
dob = request.body.dob
}
response.json({result: result});
})
})
})
我还没有尝试编辑,所以可能存在读取等语法问题。我想比较文档 ID 以进行编辑。
解决方案
您需要传递和使用这两个参数,而不仅仅是response
. JavaScript 有位置参数,而不是命名参数。现在,您的代码正在尝试使用 Request 对象作为 Response 对象,因为您将第一个 Request 对象命名为response
.
此外,您不需要使用函数 SDK 来声明您的读取导出。只需使用正常功能。只有顶级索引导出需要使用函数SDK builder。
index.js
exports.read = functions.https.onRequest((request, response) => {
return read.read(request, response);
});
读取.js
exports.read = async (request, response) => { ... }
推荐阅读
- python - Pygame字体文本未显示正确的数字
- sql - PowerShell 查询 SQL IF 列 = 0
- python - 列表迭代 - 字典列表
- python-3.x - 如何使用 contains() 将初始子字符串的列表与 Python Pandas 进行比较?
- jquery - jQuery 针对这个和类
- html - 使用引导程序 3 的两行导航栏
- wordpress - 如何在首页上排除 AdSense 自动广告
- java - 无法使用 LocalBroadcastManager 从服务中获取意图
- input - 如何在 mq5 中使用带有输入的枚举?
- c++ - 如何让 Visual Studio 使用 OpenCV 支持编译我的应用程序?