fertig bis auf Tankstellen und Graph
This commit is contained in:
117
DEPLOYMENT.md
Normal file
117
DEPLOYMENT.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# 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
|
||||
|
||||
1. Klicken Sie auf **Functions** im Menü
|
||||
2. Klicken Sie auf **Create Function**
|
||||
3. Füllen Sie die Details aus:
|
||||
- **Name**: `geocode-location`
|
||||
- **Function ID**: Wird automatisch generiert (z.B. `65a123456789abc`)
|
||||
- **Runtime**: Wählen Sie `Node.js 18.0` oder höher
|
||||
- **Execute Access**: `Any` (damit alle eingeloggten User die Function nutzen können)
|
||||
|
||||
### 3. Code hochladen
|
||||
|
||||
**Option A: Über die Console**
|
||||
1. Gehen Sie zum Tab **Deployment**
|
||||
2. Erstellen Sie ein neues Deployment
|
||||
3. Wählen Sie **Manual** als Deployment-Methode
|
||||
4. Laden Sie folgende Dateien hoch:
|
||||
- `appwrite_functions/geocode-location/main.js`
|
||||
- `appwrite_functions/geocode-location/package.json`
|
||||
5. Setzen Sie **Entrypoint**: `main.js`
|
||||
6. Klicken Sie auf **Deploy**
|
||||
|
||||
**Option B: Über CLI** (wenn Appwrite CLI installiert)
|
||||
```bash
|
||||
cd /home/digitalman/Development/flutter_tank_web_app
|
||||
appwrite deploy function
|
||||
```
|
||||
|
||||
### 4. Function ID in Flutter App eintragen
|
||||
|
||||
1. Nach erfolgreichem Deployment kopieren Sie die **Function ID**
|
||||
2. Öffnen Sie `lib/config/environment.dart`
|
||||
3. Ersetzen Sie `YOUR_FUNCTION_ID_HERE` mit Ihrer Function ID:
|
||||
|
||||
```dart
|
||||
static const String appwriteGeocodeFunctionId = '65a123456789abc'; // Ihre ID hier
|
||||
```
|
||||
|
||||
### 5. Testen
|
||||
|
||||
**In der Appwrite Console:**
|
||||
1. Gehen Sie zu Ihrer Function
|
||||
2. Klicken Sie auf **Execute**
|
||||
3. Verwenden Sie diesen Test-Body:
|
||||
```json
|
||||
{
|
||||
"lat": 47.9385165,
|
||||
"lon": 13.762887,
|
||||
"apiKey": "NTYxMDQ3NTY2OWI3NDI5ZGIzZWIxOWNiNTNhMDEwODY6YTQ4MTJhYzYtYmYzOC00ZmE4LTk4YzYtZDBjNzYyZTAyNjBk"
|
||||
}
|
||||
```
|
||||
4. Erwartete Response:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"location": "Straßenname Hausnummer, PLZ Stadt",
|
||||
"coordinates": {
|
||||
"lat": 47.9385165,
|
||||
"lon": 13.762887
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**In der Flutter App:**
|
||||
1. Starten Sie die App neu
|
||||
2. Erstellen Sie einen neuen Tankeintrag
|
||||
3. Die Standortabfrage sollte nun über den Backend-Proxy laufen
|
||||
4. 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:**
|
||||
1. Prüfen Sie die Logs in der Appwrite Console
|
||||
2. Stellen Sie sicher, dass die Runtime korrekt ist
|
||||
3. 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:**
|
||||
1. Stellen Sie sicher, dass die alte `getNearbyLocation` Methode nicht mehr verwendet wird
|
||||
2. Prüfen Sie, dass `appwriteService.geocodeLocation` aufgerufen wird
|
||||
3. 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.
|
||||
Reference in New Issue
Block a user