首页 > 解决方案 > 如何使我的 Firestore 监听器安全/安全?

问题描述

您好,我有一个带有 firebase 的侦听器,因此只要有更改,它就会执行功能。我需要将此侦听器放入软件中,以便在检测到更改时执行功能。我怎么能把这个监听器放在我的其他代码中,并确保我的数据库保持安全,并且没有人能弄乱它?

const functions = require("firebase-functions");
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
const express = require('express');
const cors = require('cors');

const admin = require('firebase-admin');
admin.initializeApp();
const app = express();


const db = admin.firestore()


exports.onCreate = functions.firestore.document('users/{userId}').onCreate(async (snap, context) => {
    const values = snap.data();

    
    await db.collection('logging').add({description : `SKU was sent to discord with ${values.username}`})
})


标签: node.jsdatabasefirebasegoogle-cloud-firestorelistener

解决方案


使用 Firebase 函数和 Firestore,您可以执行以下操作:

将所有 Firebase 功能保留在服务器端,而不是客户端。服务器端功能具有管理员访问权限,但除了 firebase 帐户所有者/管理员之外,任何人都无法访问它们。

然后,您使用“ onUpdate ”firebase 函数:每次您的文档(数据)更改时,您的 Firebase 函数都会运行。

那么它应该怎么做呢?

只需让它通过 HTTP GET 或 POST 调用调用您的外部(不可信)软件。您可以使用Axios来做到这一点,甚至可以将 JSON 或查询参数传递给该外部软件。你可以让外部代码做它应该做的事情,而不必直接与你的数据库交互。


推荐阅读