3.6 KiB
Backend-Proxy Setup - Deployment Anleitung
📋 Übersicht
Diese Anleitung erklärt, wie Sie die Appwrite Function für Geocoding deployen, um CORS-Probleme zu vermeiden.
🚀 Deployment Schritte
1. Appwrite Console öffnen
Navigieren Sie zu Ihrer Appwrite Console:
https://appwrite.joshihomeserver.ipv64.net/console
2. Function erstellen
- Klicken Sie auf Functions im Menü
- Klicken Sie auf Create Function
- Füllen Sie die Details aus:
- Name:
geocode-location - Function ID: Wird automatisch generiert (z.B.
65a123456789abc) - Runtime: Wählen Sie
Node.js 18.0oder höher - Execute Access:
Any(damit alle eingeloggten User die Function nutzen können)
- Name:
3. Code hochladen
Option A: Über die Console
- Gehen Sie zum Tab Deployment
- Erstellen Sie ein neues Deployment
- Wählen Sie Manual als Deployment-Methode
- Laden Sie folgende Dateien hoch:
appwrite_functions/geocode-location/main.jsappwrite_functions/geocode-location/package.json
- Setzen Sie Entrypoint:
main.js - Klicken Sie auf Deploy
Option B: Über CLI (wenn Appwrite CLI installiert)
cd /home/digitalman/Development/flutter_tank_web_app
appwrite deploy function
4. Function ID in Flutter App eintragen
- Nach erfolgreichem Deployment kopieren Sie die Function ID
- Öffnen Sie
lib/config/environment.dart - Ersetzen Sie
YOUR_FUNCTION_ID_HEREmit Ihrer Function ID:
static const String appwriteGeocodeFunctionId = '65a123456789abc'; // Ihre ID hier
5. Testen
In der Appwrite Console:
- Gehen Sie zu Ihrer Function
- Klicken Sie auf Execute
- Verwenden Sie diesen Test-Body:
{
"lat": 47.9385165,
"lon": 13.762887,
"apiKey": "NTYxMDQ3NTY2OWI3NDI5ZGIzZWIxOWNiNTNhMDEwODY6YTQ4MTJhYzYtYmYzOC00ZmE4LTk4YzYtZDBjNzYyZTAyNjBk"
}
- Erwartete Response:
{
"success": true,
"location": "Straßenname Hausnummer, PLZ Stadt",
"coordinates": {
"lat": 47.9385165,
"lon": 13.762887
}
}
In der Flutter App:
- Starten Sie die App neu
- Erstellen Sie einen neuen Tankeintrag
- Die Standortabfrage sollte nun über den Backend-Proxy laufen
- Sie sollten eine Erfolgs-Snackbar mit der Adresse sehen
🔧 Troubleshooting
Function ID nicht gesetzt
Problem: Console-Warnung: "Appwrite Function ID nicht konfiguriert" Lösung: Schritt 4 nochmal durchführen und App neu starten
Function Execution fehlgeschlagen
Problem: Status ist nicht "completed" Lösung:
- Prüfen Sie die Logs in der Appwrite Console
- Stellen Sie sicher, dass die Runtime korrekt ist
- Prüfen Sie ob alle Dateien hochgeladen wurden
PTV API Fehler
Problem: "PTV API Fehler - Status Code: 401"
Lösung: API Key in environment.dart überprüfen
CORS weiterhin ein Problem
Problem: Immer noch CORS-Fehler Lösung:
- Stellen Sie sicher, dass die alte
getNearbyLocationMethode nicht mehr verwendet wird - Prüfen Sie, dass
appwriteService.geocodeLocationaufgerufen wird - Cachen leeren und App neu builden
✅ Erfolgskriterien
Nach erfolgreichem Deployment sollten Sie:
- ✅ Eine Erfolgs-Snackbar mit Adresse sehen (nicht nur Koordinaten)
- ✅ Keine CORS-Fehler mehr in der Browser-Console
- ✅ In den Logs: "📍 Verwende Backend-Proxy für Geocoding..."
- ✅ In den Logs: "✅ Geocoding erfolgreich: [Adresse]"
📝 Alternative ohne Deployment
Falls Sie die Function nicht deployen möchten, wird automatisch auf Koordinaten-Speicherung zurückgegriffen. Die App funktioniert weiterhin, speichert aber Lat: XX.XXXXXX, Lon: YY.YYYYYY statt der Adresse.