mirror of
https://github.com/kuhyx/utils.git
synced 2026-11-10 21:07:15 +01:00
Both the Google one-tap path and the seeded-session path deliberately write `FirebaseAccount(email: ..., password: '')` -- on those devices the refresh token in the keystore is the credential, and there is no password to store. `tryParse` rejected exactly that blob. So a device signed in with Google wrote an account marker it could never read back: every later launch saw "not configured", fell through to the mirror, and left a perfectly good refresh token unused in the keystore beside it. Only widens what parses, so no caller that previously got an account back can regress. Every call site already guards `password.isEmpty` and passes null for it -- meaning "no password on this device" -- which is precisely the case this now lets them see. An empty *email* stays rejected: it carries no identity at all. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CFSGeWxHPY5rHUGrPqhcmG |
||
|---|---|---|
| .. | ||
| device_test.dart | ||
| firebase_account_provisioning_test.dart | ||
| firebase_auth_rest_google_test.dart | ||
| firebase_auth_rest_test.dart | ||
| firebase_auth_rest_tokens_test.dart | ||
| firebase_auth_rest_uid_test.dart | ||
| firebase_client_test.dart | ||
| firebase_client_writes_test.dart | ||
| firebase_config_client_google_test.dart | ||
| firebase_config_client_test.dart | ||
| firebase_config_test.dart | ||
| firebase_settings_test.dart | ||
| github_client_test.dart | ||
| github_client_writes_test.dart | ||
| hlc_test.dart | ||
| log_test.dart | ||
| mirror_store_fallback_test.dart | ||
| mirror_store_reads_test.dart | ||
| mirror_store_revisions_test.dart | ||
| mirror_store_test.dart | ||
| record_test.dart | ||
| secure_credential_store_test.dart | ||
| store_test.dart | ||
| sync_revisions_backends_test.dart | ||
| sync_revisions_order_test.dart | ||
| sync_revisions_peers_test.dart | ||
| sync_revisions_persistence_test.dart | ||
| sync_revisions_test.dart | ||
| sync_skips_test.dart | ||
| sync_test.dart | ||