還有一些關於此問題的老問題,但由於他們已經有幾年了,所以我很好奇是否有關於此的更新。我想爲彩票製作動畫,用戶可以購買門票。一切進展順利,但我想確保從未售出超過一千張門票。它必須是服務器端,而這些是我的規則:設置Firebase的最大兒童人數
"Lottery": {
".read": "auth != null",
".write": "auth != null",
"counter": {
".validate": "newData.isNumber() && newData.val() > 0 && newData.val() <= 1000 && ((!data.exists() && newData.val() === 1) || (newData.val() === data.val()+1))"
},
"tickets":{
"root.child('Lottery/counter/').val() === someValueYouNeedItToEqual"
}
}
我不知道該怎麼在someValueYouNeedItToEqual寫。我很擔心這個系統的工作。我的目標是將用戶的UID寫入服務器,並且如果值(我可以搜索客戶端的可用點,值可以是0到1000之間的Int)是免費的,那麼它將被接受。當所有景點都被拍攝時,它應該被拒絕(節點中有1000個小孩)。我希望有人能幫我弄清楚所需的驗證規則。謝謝。
謝謝:)現在我需要它來確保它設置不超過1000個孩子。任何想法如何做到這一點? –
不幸的是,從firebase的服務器端規則中獲取兒童人數的方式並不存在。我能想到的最簡單的方法是添加一個「numberOfTickets」引用,並在每次添加票證時增加它。然後,你只需要寫一條規則,像''root.child('numberOfTickets')。val()<1000「' –