【发布时间】:2021-05-11 15:13:16
【问题描述】:
我正在使用演示示例
const functions = require('firebase-functions');
var message = "message";
// The Firebase Admin SDK to access Firestore.
const admin = require('firebase-admin');
admin.initializeApp();
exports.addMessage = functions.https.onRequest(async (req, res) => {
const original = req.query.text;
const writeResult = await admin.firestore().collection(message).add({original: original});
res.json({result: `Message with ID: ${writeResult.id} added.`});
});
exports.makeUppercase = functions.firestore.document('/' + message + '/{documentId}')
.onCreate((snap, context) => {
const original = snap.data().original;
functions.logger.log('Uppercasing', context.params.documentId, original);
const uppercase = original.toUpperCase();
return snap.ref.set({uppercase}, {merge: true});
});
这是我的规则-
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
我的预期是,如果允许读写设置为 false,makeUppercase 将不会执行。我知道 addMessage 会因为管理员权限而工作,但为什么 makeUppercase 在模拟器中执行。
【问题讨论】:
标签: javascript firebase google-cloud-platform google-cloud-firestore google-cloud-functions