Heim >Web-Frontend >js-Tutorial >NgSysV.A Serious Svelte InfoSys: Eine regelfreundliche Version

NgSysV.A Serious Svelte InfoSys: Eine regelfreundliche Version

Susan Sarandon
Susan SarandonOriginal
2024-12-03 14:22:14943Durchsuche

NgSysV.A Serious Svelte InfoSys: A Rules-friendly version

Diese Beitragsserie ist auf NgateSystems.com indiziert. Dort finden Sie auch eine äußerst nützliche Stichwortsuchfunktion.

Letzte Bewertung: 24. November

1. Einführung

In dieser Serie wurde zuvor beschrieben, wie Sie das Svelte-Framework in Verbindung mit der Firestore-Datenbank-Client-API von Google verwenden können, um schnell und unterhaltsam nützliche Informationssysteme zu entwickeln. Leider hat Beitrag 3.3 jedoch gezeigt, dass das ansonsten hervorragende Authentifizierungssystem von Firebase keine Firestore-Aktivitäten in serverseitigen Load()- und Actions()-Funktionen unterstützt, bei denen Datenbankregeln auf das Authentifizierungsobjekt verweisen.

Das Überspringen Ihrer Firestore-Autorisierungsregeln ist keine Option – ohne diese ist Ihre Datenbank für jeden offen, der die FirebaseConfig-Schlüssel aus Ihrer Webanwendung kapern kann. In diesem Beitrag werden Möglichkeiten beschrieben, den serverseitigen Svelte-Code so zu überarbeiten, dass er auf der Clientseite ausgeführt wird, während die Firestore-Regeln fest in Kraft bleiben.

2. Überarbeitung „kompromittierter“ Load()-Funktionen

Nicht alle Load()-Funktionen sind vom Vorhandensein von Firestore-Regeln betroffen. Diejenigen, die auf Firestore-öffentliche-Sammlungen verweisen, werden weiterhin problemlos serverseitig ausgeführt. Die Client-API ist weiterhin in den page.server.js-Dateien verfügbar – sie funktioniert jedoch nicht, wenn sie aufgefordert wird, durch Authentifizierung geschützte Sammlungen zu verwenden.

Wenn Ihre Load()-Funktion öffentliche Dateien adressiert und Sie einfach serverseitiges Debuggen vermeiden möchten, können Sie Ihre Load()-Funktion in eine page.js-Datei verschieben. Dies funktioniert genau wie eine page.server.js-Datei – Svelte führt die Funktion weiterhin automatisch beim Laden aus. Dies geschieht jedoch jetzt clientseitig, wo es im Browser debuggt werden kann. Weitere Informationen finden Sie in der Svelte-Dokumentation unter „Laden von Daten“

Allerdings muss eine „kompromittierte“ Load()-Funktion (in der Regel dort, wo Firestore-Regeln verwendet werden, um sicherzustellen, dass Benutzer nur auf ihre eigenen Daten zugreifen können) in clientseitigen Code verlagert werden. Typischerweise wird dies in eine neue, entsprechend benannte Funktion im