📅  最后修改于: 2023-12-03 15:00:46.063000             🧑  作者: Mango
Firestore是一种非关系型文档数据库,它是Google Cloud的一部分。当您使用Firebase,您可以快速创建移动应用程序和网站,并轻松地将它们与Cloud Firestore集成。
在这个教程中,我们将学习如何使用Firestore和云函数来更新文档。我们将使用TypeScript编写云函数。让我们开始吧!
首先,我们需要通过npm安装Firebase和Firebase Admin SDK。我们还需要在Firebase控制台中设置Firebase项目。
npm install firebase firebase-admin
当你完成以后,打开Firebase控制台,创建或选择一个现有的项目。在您的Firebase项目中,找到“设置”,然后点击“服务帐户”。然后,点击“生成新的专用密钥”并下载JSON文件。
接着,将JSON文件拷贝到Firebase项目的根目录下,并将其命名为“serviceAccountKey.json”。
然后,在您的TypeScript代码的开头添加以下内容:
import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'
const serviceAccount = require('./serviceAccountKey.json')
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
})
const db = admin.firestore()
这里我们引入了Firebase Functions和Firebase Admin,然后初始化了Firebase Admin SDK并创建了Firestore实例。我们使用了从JSON文件中读取的服务帐户密钥。
这样,我们就设置好了Firebase。
接下来,我们将编写云函数来更新Firestore中的文档。
我们将编写一个云函数,当触发器执行时,更新文档的内容。
以下是函数的完整代码:
export const updateDocument = functions.https.onCall(async (data, context) => {
// 获取需要更新文档的引用
const documentRef = db.collection('users').doc(data.documentId)
try {
// 更新文档
await documentRef.update({
name: data.name,
email: data.email
})
// 返回成功
return {
success: true
}
} catch (e) {
// 返回错误
return {
success: false,
error: e.message
}
}
})
在这个函数中,我们首先获取需要更新的文档的引用。然后,我们使用这个引用来更新文档的内容。在这个示例函数中,我们简单地更新了文档的名称和电子邮件。
如果文档更新成功,我们返回一个包含success=true的对象。否则,我们返回一个包含success=false和错误消息的对象。
现在我们已经编写了云函数,接下来我们需要将其部署到Firebase云函数中。
使用以下命令将您的云函数部署到Firebase:
firebase deploy --only functions
这将部署您的云函数。如果一切顺利,您应该能够在Firebase控制台中看到您的云函数。
最后,我们需要在您的应用程序中调用云函数。让我们看一下如何在JavaScript中调用云函数。
const updateDocument = firebase.functions().httpsCallable('updateDocument')
updateDocument({
documentId: 'doc1',
name: 'John Smith',
email: 'john@example.com'
})
.then(result => {
console.log('Document updated successfully')
})
.catch(error => {
console.error(error)
})
在这个示例中,我们使用firebase.functions().httpsCallable方法调用我们的云函数。我们将一个对象作为参数传递给函数,该对象包含文档ID、名称和电子邮件。
如果函数成功运行,我们将在控制台上看到“Document updated successfully”消息。
现在,您已经了解了如何使用Firestore和云函数更新文档。使用云函数,您可以轻松地执行各种任务,而不需要像以前一样使用“中间服务器”。好好利用Firebase提供的这些功能,让您的应用程序更加安全、快速和强大!