我一直试图让我的node.js服务器监听我的firebase安全规则,但似乎每次都忽略它们。下面是我的初始化代码。我的服务帐户设置为编辑器,我甚至使用了databaseAuthVariableOveride
。
var serviceAccount= require("./service-account.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://example.firebaseio.com",
databaseAuthVariableOverride: {
uid: "my-service-account"
}
});
以下是我的Firebase数据示例。
UserInputtedData:
Region:
locationID:
$userSubmissionPushID:
timeStamp: 1482037224063
tag:0
我的安全规则如下。我试图让我的节点服务器只读取每个$userSubmissionPushID
下的数据,如果它在最后一小时内基于我的timeStamp
。我的规则在Firebase安全模拟器中工作,当我在不同的情况下测试它时,但我的服务器似乎只是忽略每个规则,并阅读$locationID
内的每个孩子。我甚至尝试了它没有规则"auth.uid === 'my-service-account'
。
"userInputtedData": {
"Region": {
"$locationID": {
"$userSubmissionPushID": {
".read": "auth.uid === 'my-service-account' && data.child('timeStamp').val() > (now - 3600000)"
}
}
}
}
如果有人有任何想法,那将非常感激。
感谢。
修改 我应该声明,在激活上述安全规则的情况下,服务器上没有数据可读。它只是说明启动服务器,然后保持空白。