セキュリティ ドキュメント(下の画像) の違いは何かについて混乱しています。
設計ドキュメント内に配置されたvalidate_doc_update関数 (以下を参照)間の AND 。
function(newDoc, oldDoc, usersCtx){
//validate code goes here
}
どちらがどの時点で使用され、それぞれの目的は何ですか?
前もって感謝します。
セキュリティ ドキュメント(下の画像) の違いは何かについて混乱しています。
設計ドキュメント内に配置されたvalidate_doc_update関数 (以下を参照)間の AND 。
function(newDoc, oldDoc, usersCtx){
//validate code goes here
}
どちらがどの時点で使用され、それぞれの目的は何ですか?
前もって感謝します。
セキュリティ ドキュメントには状態 (データ) が格納され、検証ドキュメントの更新関数には動作 (ロジック) が格納されます。一緒に、オブジェクト指向の意味でオブジェクトを形成します。
関数の完全な署名validate_doc_update
は実際には
function(newDoc, oldDoc, userCtx, secObj)
secObj
セキュリティ ドキュメントはどこにありますか。したがって、必要に応じて の方法validate_doc_update
として解釈できます。目標は、検証コードでデータをハードコードする必要がないようにすることで、コードを整頓することです。secObj
これらは、さまざまなスコープに適用されるさまざまな概念です...
セキュリティ ドキュメント これは、データベースにグローバルに適用されます。どのユーザー名が管理ロールを持ち、どのユーザーがアクセスできるかを制御します。データベースが公開されていない場合、このドキュメントで指定されているユーザーのみがデータベースにアクセス (読み取りまたは書き込み) できます。認証は別の場所で処理されることに注意してください。このドキュメントでは、認証されたユーザー名のみを扱います。
検証機能がなくても、データベース レベルでアクセスを制御するため、セキュリティ ドキュメントは重要です。
検証機能 設計ドキュメントの検証機能により、設計者はドキュメントへの変更を制限できます。データベース内のすべての設計ドキュメントのすべての検証関数の結果に応じて、PUT/POST が成功するか失敗するかが決まります。ただし、検証機能で使用できるデータは限られています。更新中のドキュメントとセキュリティ ドキュメント以外のドキュメントを参照することはできません。
検証機能を使用すると、デザイナーはフィールドの値を制限したり、変更できるフィールドを制御したり、現在のユーザーが管理者であるかどうかに基づいて権限を変更したりできます。ただし、新しい値が別のドキュメントのルックアップ リストにあることや、別のドキュメント ID への参照が有効であることを確認することはできません。
セキュリティ ドキュメントを持たないパブリック データベースで検証関数を使用することは可能です。したがって、これら 2 つの概念は連携して機能しますが、どちらも他方を必要としません。