【发布时间】:2021-08-23 13:43:59
【问题描述】:
这是我关于stackoverflow的第一个问题。
我正在尝试编写一些简单的 Firestore 安全/数据验证规则,以防止创建年龄小于 18 岁的用户。
这是我到现在为止的:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if
request.time < timestamp.date(2021, 9, 22);
}
match /users/{user} {
allow create: if request.resource.data.age > 18;
}
}
}
我用来向 Firestore 写入数据的代码如下:
const firebase = require('firebase');
require('firebase/firebase-firestore');
const firebaseConfig = {/* firebase api keys */}
firebase.initializeApp(firebaseConfig);
const Firestore = firebase.firestore();
Firestore.collection('users')
.add({
first_name: 'Laura',
last_last: 'Waterson',
age: 5,
})
.then((docRef) => {
console.log('Document written with ID: ', docRef.id);
})
.catch((error) => {
console.error('Error adding document: ', error);
});
如您所见,我添加了一个年龄等于 5 的用户,它实际上已添加到数据库中,这意味着我编写的安全规则不起作用。
我做错了吗?
【问题讨论】:
标签: javascript google-cloud-firestore firebase-security