Fix: flutter_timezone 5.x liefert TimezoneInfo-Objekt – identifier speichern statt Objekt
Der Firestore-Write warf zur Laufzeit eine Exception (nicht serialisierbares Objekt), wodurch auch der FCM-Token nie gespeichert wurde. Fehler bei der Push-Registrierung werden jetzt geloggt statt verschluckt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
c1205fb959
commit
876ed06a97
1 changed files with 10 additions and 2 deletions
|
|
@ -49,7 +49,9 @@ class FirebasePushRegistrationService implements PushRegistrationService {
|
||||||
final timezone = await FlutterTimezone.getLocalTimezone();
|
final timezone = await FlutterTimezone.getLocalTimezone();
|
||||||
await _firestore.collection('users').doc(uid).set({
|
await _firestore.collection('users').doc(uid).set({
|
||||||
'fcmTokens': FieldValue.arrayUnion([token]),
|
'fcmTokens': FieldValue.arrayUnion([token]),
|
||||||
'timezone': timezone,
|
// IANA-Kennung, z. B. "Europe/Berlin" – das Objekt selbst ist nicht
|
||||||
|
// Firestore-serialisierbar.
|
||||||
|
'timezone': timezone.identifier,
|
||||||
}, SetOptions(merge: true));
|
}, SetOptions(merge: true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,6 +80,12 @@ final pushRegistrationServiceProvider = Provider<PushRegistrationService>((ref)
|
||||||
final pushSetupProvider = Provider<void>((ref) {
|
final pushSetupProvider = Provider<void>((ref) {
|
||||||
final user = ref.watch(authStateProvider).value;
|
final user = ref.watch(authStateProvider).value;
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
ref.read(pushRegistrationServiceProvider).registerDevice(user);
|
ref.read(pushRegistrationServiceProvider).registerDevice(user).catchError(
|
||||||
|
(Object error, StackTrace stack) {
|
||||||
|
// Bewusst nur loggen: Push-Registrierung darf den App-Start nie
|
||||||
|
// blockieren, aber Fehler müssen im Log sichtbar sein.
|
||||||
|
debugPrint('Push-Registrierung fehlgeschlagen: $error');
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue