我正在開發一個電子商務Web應用程序,我需要在數據庫創建後立即發出命令,以防止用戶甚至可以通過站點管理員編輯訂單。使用Firebase權限將數據創建爲只創建一次
我有這個在我的規則
"orders":{
"$order": {
".read": "$order == auth.uid || auth.isAdmin == true",
".write": "$order == auth.uid && (data.child('orders').child($order).hasChildren(['items', 'datePlace', 'shipping', 'totalPriceOfOrder']) !== newData.hasChildren(['items', 'datePlace', 'shipping', 'totalPriceOfOrder'])"
},
".read": "auth.isAdmin == true"
}
這個($order == auth.uid || auth.isAdmin == true)
在".write"
在$order
目的是確保只有在用戶可以寫入命令對象並在項目進行有uid作爲密鑰簽名。
(data.child('orders').child($order).hasChildren(['items', 'datePlace', 'shipping', 'totalPriceOfOrder']) !== newData.hasChildren(['items', 'datePlace', 'shipping', 'totalPriceOfOrder'])
的目的是爲了確保只有在以前不存在表格的情況下才能寫入。
這不是工作,我不知道爲什麼它不工作。
您的解決方案的工作,但似乎有另一個問題,auth.isAdmin被拒絕在客戶端上而不是在模擬權限。 –
請您詳細說明一下嗎? – leopragi
好吧我會添加更新我的問題,包括它。 –