Files
Handwerks_app/utils/appwrite_error_message.dart
JUSN 9ddce354c0 Feature
ein paar feature aber datenbank macht probleme wenn man aufträge speichern möchge
2026-04-05 12:47:57 +02:00

64 lines
2.9 KiB
Dart

import 'package:appwrite/appwrite.dart';
import '../appwrite_config.dart';
import '../config/appwrite_rechnungen_setup.dart';
/// Verständliche Meldung beim Laden von Aufträgen / Account (Haupt-Shell).
String nachrichtFuerAppwriteDatenFehler(Object error) {
if (error is! AppwriteException) {
return error.toString();
}
final e = error;
final typ = e.type ?? '';
final msgLower = (e.message ?? '').toLowerCase();
// Appwrite-Texte sprechen manchmal von „API key“ — die App nutzt aber die
// **Nutzer-Session** (nach Login), nicht die Datei `.appwrite_api_key`.
if (msgLower.contains('api') && msgLower.contains('key')) {
return 'Die App verwendet beim normalen Betrieb **keinen** Server-API-Key '
'(die Datei `.appwrite_api_key` ist nur fürs Einrichtungs-Skript).\n\n'
'Wenn Appwrite trotzdem von einem Key spricht, liegt es meist an:\n'
'• Session abgelaufen oder ungültig → **Abmelden und neu anmelden**\n'
'• Falsche **Project-ID** oder **Endpoint** in der App\n'
'• Unter Appwrite **Settings → Platforms** die Plattform '
'(Bundle-ID / Hostname) fehlt → „Unauthorized“ / merkwürdige Meldungen\n\n'
'Technisch: ${e.toString()}';
}
switch (typ) {
case 'database_not_found':
return 'Auf dem Appwrite-Server gibt es keine Datenbank mit der ID '
'$kAppwriteDatabaseId“.\n\n'
'So behebst du das:\n'
'• Appwrite Console öffnen → dein Projekt → Databases → '
'„Create database“ → als Database ID exakt '
'$kAppwriteDatabaseId“ eintragen\n'
'oder\n'
'• In lib/appwrite_local.dart bei kAppwriteDatabaseIdOverride die '
'ID eintragen (oder --dart-define=APPWRITE_DATABASE_ID=…).\n\n'
'Technisch: ${e.toString()}';
case 'collection_not_found':
return 'Die Collection „$kAppwriteCollectionId“ fehlt in der Datenbank '
'$kAppwriteDatabaseId“.\n\n'
'${appwriteRechnungenCollectionCheckliste()}\n\n'
'Technisch: ${e.toString()}';
case 'bucket_not_found':
return 'Der Storage-Bucket „$kAppwriteBucketId“ wurde nicht gefunden.\n\n'
'Lege ihn in Storage an oder trage die Bucket-ID in '
'lib/appwrite_local.dart (kAppwriteBucketIdOverride) ein.\n\n'
'Technisch: ${e.toString()}';
case 'project_not_found':
return 'Das Appwrite-Projekt wurde nicht gefunden (falsche Project-ID '
'oder Endpoint). Prüfe setProject(...) in lib/appwrite_config.dart '
'und den Endpoint.\n\n'
'Technisch: ${e.toString()}';
case 'user_unauthorized':
case 'general_unauthorized_scope':
return 'Keine Berechtigung für diese Aktion. Bitte erneut anmelden '
'oder in der Appwrite Console die Collection-/DB-Rechte prüfen.\n\n'
'Technisch: ${e.toString()}';
default:
return e.toString();
}
}