【问题标题】:How to make my firestore listeners secure/security?如何使我的 Firestore 监听器安全/安全?
【发布时间】:2021-04-25 10:02:34
【问题描述】:

您好,我有一个带有 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}`})
})


【问题讨论】:

  • “我的数据库是安全的,没有人能弄乱它”你必须澄清你的意思。如果您想了解如何使用 Firebase 的服务器端安全规则控制对数据库的访问,请查看此处:firebase.google.com/docs/rules

标签: node.js database firebase google-cloud-firestore listener


【解决方案1】:

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

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

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

那该怎么办呢?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-02
    • 2011-01-23
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2018-06-21
    相关资源
    最近更新 更多