我有以下消防规则。我正在使用带有服务帐户密钥的管理sdk来访问firestore。
service cloud.firestore {
match /databases/{database}/documents {
match /users/{user} {
allow read, delete: if true;
allow update, write: if getAfter(/databases/$(database)/documents/users/$(request.resource.id)).data.AccountId is int;
}
}
}
我想强制执行
AccountId
字段作为
int
在
users
集合,但我仍然可以在
记帐
是一个
string
.
我正在尝试验证
用户
收集。
下面的代码将更新
user
文件:
try {
await db.collection('users').doc('1').set({
AccountId: '1234'
})
} catch(e) {
console.log(e)
}
这是不允许的,因为
记帐
不是int。
try {
await db.collection('users').doc('1').set({
AccountId: 1234
})
} catch(e) {
console.log(e)
}
这应该是允许的,因为
记帐
是INT。
使用管理sdk,我可以设置
记帐
到A
一串
.
编辑:
我已经更新了我的规则,我仍然可以写
记帐
作为一个
一串
.
service cloud.firestore {
match /databases/{database}/documents {
match /users/{user} {
allow read: if true;
allow create, update: if request.resource.data.AccountId is int;
}
}
}