我一直在寻找通过IP率限制请求的方法,但无法找到任何资源.基本上我正在寻找的是一种实现防火墙逻辑的方法.我知道我可以使用数据库规则限制经过身份验证的用户请求,但是如何限制页面点击?例如,我只希望每个IP允许每分钟150个请求.有没有办法做到这一点?否则,攻击Blaze计划的小企业会不容易?
此功能最初进行Stripe调用以向用户收费,然后创建一个事务来更新两个不同的文档 - 相关的付款和用户.我不确定如何优化此代码,因为我需要事务逻辑来更新文档.我该如何优化此功能?
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const moment = require('moment')
admin.initializeApp(functions.config().firebase);
const stripe = require('stripe')(functions.config().stripe.testkey)
const db = admin.firestore();
exports.stripeCharge = functions.firestore
.document('users/{userId}/payments/{paymentId}')
.onWrite(event => {
const payment = event.data.data();
const userId = event.params.userId;
const paymentId = event.params.paymentId;
if (!payment || payment.charge) return;
const amount = payment.amount;
const duration = payment.duration;
const createdAt = payment.createdAt;
const idempotency_key = paymentId;
const source = payment.token.id;
const currency = 'usd';
const charge = {amount, currency, source};
return stripe.charges.create(charge, …
Run Code Online (Sandbox Code Playgroud)