64 lines
2.9 KiB
Dart
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();
|
|
}
|
|
}
|