例如,如果我有一個如下所示的 Firestore 檔案:
{
threadId: 'abc',
authorId: 'abc',
content: 'blah blah blahh'
}
如果我不小心撰寫了一些添加另一個欄位的代碼,我可以讓 Firebase 拋出錯誤嗎,如下所示:
{
accident: 'OOPS! THIS FIELD SHOULD NOT BE HERE',
threadId: 'abc',
authorId: 'abc',
content: 'blah blah blahh'
}
就像每個檔案形狀的靜態型別,并從 Firestore 端強制執行。那可能嗎?
uj5u.com熱心網友回復:
如果您從客戶端 SDK 寫入資料,則可以使用安全規則來驗證資料。有關這方面的一些示例,請參閱有關在安全規則中驗證資料的 Firestore 檔案。
例如,要測驗檔案是否只有您提到的三個欄位,您可以執行以下操作:
allow write: if request.resource.data.keys.hasOnly("threadId", "authorId", "content")
uj5u.com熱心網友回復:
一個可能的解決方案是創建一個云函式,它會在檔案更新后讀取檔案的內容。例如,如果您的檔案有固定數量的欄位,那么您應該始終檢查該數字,在您的示例中,它將是三個。例如,如果檢查的結果是四,那么您可以采取一些措施。
另一種方法是在更新檔案之前檢查檔案中是否存在欄位。如果該特定欄位存在,請進行更新,否則,拋出錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/465505.html
