ホームページ >ウェブフロントエンド >jsチュートリアル >NgSysV.A 本格的で洗練された InfoSys: ルールに優しいバージョン
この投稿シリーズは NgateSystems.com にインデックスされています。とても便利なキーワード検索機能もあります。
最終レビュー日: 2024 年 11 月
このシリーズでは、Svelte フレームワークを Google の Firestore データベース クライアント API と組み合わせて使用して、有用な情報システムを迅速かつ楽しく開発する方法を以前に説明しました。しかし、悲しいことに、Post 3.3 では、Firebase の優れた認証システムが、データベース ルールが認証オブジェクトを参照するサーバー側のload() 関数とactions() 関数で Firestore アクティビティをサポートしていないことが明らかになりました。
Firestore 認証ルールをスキップすることはできません。これらのルールがないと、データベースは Web アプリから firebaseConfig キーをハイジャックできる誰にでも公開されてしまいます。この投稿では、Firestore ルールがしっかりと維持されたままクライアント側で実行されるように、Svelte サーバー側コードを再加工する方法について説明します。
すべてのload()関数がFirestoreルールの存在によって影響を受けるわけではありません。 Firestore の public コレクションを参照するコレクションは、引き続きサーバー側で問題なく実行されます。クライアント API は、page.server.js ファイルで引き続き使用できます。認証によって保護されたコレクションの使用を要求された場合には機能しません。
load() 関数がパブリック ファイルに対応していて、単にサーバー側のデバッグを避けたい場合は、load() 関数を page.js ファイルに移動することを検討してください。これは page.server.js ファイルとまったく同じように機能します。Svelte はロード時に関数を自動的に実行します。しかし、これはクライアント側で発生し、ブラウザでデバッグできるようになりました。詳細については、Svelte ドキュメントのデータのロードを参照してください
ただし、「侵害された」load() 関数 (通常、ユーザーが自分のデータのみにアクセスできるようにするために Firestore ルールが使用される) は、クライアント側のコードに再配置する必要があります。通常、これは、