Flutter рдкрд░ Firebase рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╢реБрд░реВ рдХрд░рдирд╛

рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ Firebase рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

рдЕрдЧрд░ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ Flutter рдХреЗ рд▓рд┐рдП Firebase SDK рдЯреВрд▓ рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢реБрд░реВ рдХрд░реЗрдВ рддреЛ.

рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ Firebase рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝реЗрдВ

  1. рдЕрдкрдиреЗ Flutter рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рд╕реЗ, рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ рдкреНрд▓рдЧрд┐рди:

    flutter pub add firebase_auth
    
  2. рдпрд╣ рдкреНрд░реЛрд╕реЗрд╕ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдкрдирд╛ Flutter рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдВ:

    flutter run
    
  3. рдЕрдкрдиреЗ Dart рдХреЛрдб рдореЗрдВ рдкреНрд▓рдЧ рдЗрди рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВ:

    import 'package:firebase_auth/firebase_auth.dart';
    

рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реЗрд╡рд╛ рджреЗрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рдХрдВрдкрдиреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ Firebase рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛. рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Firebase рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реЗрдХреНрд╢рди рдореЗрдВ 'рд╕рд╛рдЗрди рдЗрди рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛' рдкреЗрдЬ рдкрд░ рдЬрд╛рдПрдВ рдИрдореЗрд▓/рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рд╕рд╛рдЗрди-рдЗрди рдФрд░ рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рдкрд╣рдЪрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реА рдРрд╕реА рдЕрдиреНрдп рдХрдВрдкрдирд┐рдпрд╛рдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИ.

(рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ) Firebase рд▓реЛрдХрд▓ рдПрдореНрдпреБрд▓реЗрдЯрд░ рд╕реБрдЗрдЯ рдХреА рдорджрдж рд╕реЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдПрдВ рдФрд░ рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВ

рдЖрдкрдХрд╛ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдЧреЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЪрд▓рд┐рдП рдЙрди рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдРрд╕реЗ рдЯреВрд▓ рдЬрд┐рдирдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдФрд░ рдЙрдирдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: Firebase рд▓реЛрдХрд▓ рдПрдореНрдпреБрд▓реЗрдЯрд░ рд╕реБрдЗрдЯ. рдЕрдЧрд░ рдЖрдкрдХреЛ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рддрд░реАрдХрд╛ рдЪреБрдирдирд╛ рд╣реИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдФрд░ Firebase рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдпрд╛ рд╕рд╛рдЗрди-рдЗрди рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдпреВрдЖрдИ) рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдХрд░, рд▓рд╛рдЗрд╡ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдбрд┐рдкреНрд▓реЙрдп рдХрд┐рдП рдмрд┐рдирд╛, рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рдЖрдЗрдбрд┐рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ.

рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдореНрдпреБрд▓реЗрдЯрд░, Local Emulator Suite рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ. рдпрд╣ рдЖрдкрдХреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдореНрдпреБрд▓реЗрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЙрдиреНрдЯреЗрдВрдЯ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд┐рдХрд▓реНрдк рдХреЗ рддреМрд░ рдкрд░, рдЖрдкрдХреЗ рдПрдореНрдпреБрд▓реЗрдЯ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рд╕реЛрд░реНрд╕ (рдлрд╝рдВрдХреНрд╢рди, рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕, рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ).

рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдореНрдпреБрд▓реЗрдЯрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

  1. рдПрдореНрдпреБрд▓реЗрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЯреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреЛрдб рдХреА рд▓рд╛рдЗрди рдЬреЛрдбрд╝рдирд╛.

  2. рдЖрдкрдХреА рд▓реЛрдХрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯреНрд░реА рдХреЗ рд░реВрдЯ рд╕реЗ, firebase emulators:start рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ.

  3. рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, Local Emulator Suite рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдпреВрдЖрдИ) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдпрд╛ рдиреЙрди-рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдореНрдпреБрд▓реЗрдЯрд░ REST API.

  4. рдПрдореНрдпреБрд▓реЗрдЯрд░ рдХрд╛ рдкрддрд╛ рдФрд░ рдкреЛрд░реНрдЯ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, useAuthEmulator() рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ:

    Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    
    // Ideal time to initialize
    await FirebaseAuth.instance.useAuthEmulator('localhost', 9099);
    //...
    }
    

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╝реНрдпрд╛рджрд╛ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рд╡рд╛рд▓реА рдЧрд╛рдЗрдб, рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдореНрдпреБрд▓реЗрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ. рдЬрд╝реНрдпрд╛рджрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, Local Emulator Suite рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдЦреЗрдВ.

рдЖрдЗрдП, рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ.

рдкреБрд╖реНрдЯрд┐ рдХреА рдореМрдЬреВрджрд╛ рд╕реНрдерд┐рддрд┐ рджреЗрдЦреЗрдВ

Firebase рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рдФрд░ рдХрд╛рдо рдХреА рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдорд┐рд▓рддреА рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк рдЕрдкрдиреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд╡рд░реНрд╢рди рдХреЛ рдЖрдкрдХреЗ рдирдП рдпрд╛ рдореМрдЬреВрджрд╛ Flutter рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдорд┐рд▓реЗрдЧреА. рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдЙрд╕рдиреЗ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд┐рдпрд╛ рд╣реИ.

Firebase рдкреБрд╖реНрдЯрд┐ рдХреА рдорджрдж рд╕реЗ, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рд░реАрдпрд▓ рдЯрд╛рдЗрдо рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИ. рдЗрд╕рдХреЗ рд▓рд┐рдП, Stream. рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░, рд╕реНрдЯреНрд░реАрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдореМрдЬреВрджрд╛ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрддреА рд╣реИ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рдкреНрд░реЛрд╕реЗрд╕ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдЬрдм рднреА рдореБрдордХрд┐рди рд╣реЛ, рддрдм рдмрд╛рдж рдХреЗ рдЗрд╡реЗрдВрдЯ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ.

рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реБрдП рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:

authStateChanges()

рдЗрди рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗauthStateChanges() FirebaseAuth рдЗрдВрд╕реНрдЯреЗрдВрд╕:

FirebaseAuth.instance
  .authStateChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

рдЗрд╡реЗрдВрдЯ рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВ:

  • рд▓рд┐рд╕рдирд░ рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж.
  • рдЬрдм рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕рд╛рдЗрди рдЗрди рдХрд┐рдпрд╛ рд╣реБрдЖ рд╣реЛ.
  • рдЬрдм рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдЗрди рдЖрдЙрдЯ рд╣реЛ.

idTokenChanges()

рдЗрди рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗidTokenChanges() FirebaseAuth рдЗрдВрд╕реНрдЯреЗрдВрд╕:

FirebaseAuth.instance
  .idTokenChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

рдЗрд╡реЗрдВрдЯ рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВ:

  • рд▓рд┐рд╕рдирд░ рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж.
  • рдЬрдм рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕рд╛рдЗрди рдЗрди рдХрд┐рдпрд╛ рд╣реБрдЖ рд╣реЛ.
  • рдЬрдм рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдЗрди рдЖрдЙрдЯ рд╣реЛ.
  • рдЬрдм рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЯреЛрдХрди рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рд╣реЛрддрд╛ рд╣реИ.

userChanges()

рдЗрди рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗuserChanges() FirebaseAuth рдЗрдВрд╕реНрдЯреЗрдВрд╕:

FirebaseAuth.instance
  .userChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

рдЗрд╡реЗрдВрдЯ рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВ:

  • рд▓рд┐рд╕рдирд░ рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж.
  • рдЬрдм рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕рд╛рдЗрди рдЗрди рдХрд┐рдпрд╛ рд╣реБрдЖ рд╣реЛ.
  • рдЬрдм рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдЗрди рдЖрдЙрдЯ рд╣реЛ.
  • рдЬрдм рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЯреЛрдХрди рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рд╣реЛрддрд╛ рд╣реИ.
  • FirebaseAuth.instance.currentUser рдХреЗ рджрд┐рдП рдЧрдП рдЗрди рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░:
    • reload()
    • unlink()
    • updateEmail()
    • updatePassword()
    • updatePhoneNumber()
    • updateProfile()

рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд▓рдЧрд╛рддрд╛рд░ рд╕реНрдерд┐рддрд┐

рд╕рднреА рдкреНрд▓реИрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП Firebase SDK рдЯреВрд▓ рдПрдХ рдмреЗрд╣рддрд░реАрди рд╕рд╣рд╛рдпрддрд╛ рджреЗрддреЗ рд╣реИрдВ. рдЗрд╕рд╕реЗ рдпрд╣ рдкрдХреНрдХрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрдХреНрдХрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐, рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рд╣реЛрдиреЗ рдкрд░ рдпрд╛ рдкреЗрдЬ рдкрд░ рдмрдиреА рд░рд╣рддреА рд╣реИ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВ.

рдиреЗрдЯрд┐рд╡ рдкреНрд▓реИрдЯрдлрд╝реЙрд░реНрдо рдкрд░ iOS, рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐, рдХрд┐рд╕реА рджреВрд╕рд░реЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╣реА рдмрдиреА рд░рд╣реЗрдЧреА рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреИрд╢ рдореЗрдореЛрд░реА рдХрд╛ рдбреЗрдЯрд╛ рдорд┐рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ, рд╕реЗрд╡ рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╡рд╛рдЗрдк рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛.

рд╡реЗрдм рдкреНрд▓реИрдЯрдлрд╝реЙрд░реНрдо рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдпрд╣рд╛рдВ рд╕реЗрд╡ рдХреА рдЬрд╛рддреА рд╣реИ IndexedDB. рдбреЗрдЯрд╛ рдХреЛ рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд╕рд┐рд╕реНрдЯреЗрдВрд╕ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ Persistence.LOCAL рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ. рдЕрдЧрд░ рдЬрд╝рд░реВрд░реА рд╣реЛ, рддреЛ рдЗрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЗ рдХреЛ рд╕рд┐рд░реНрдлрд╝ рд▓рд╛рдЧреВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рдореМрдЬреВрджрд╛ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВ рдпрд╛ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рднреА рди рджреЗрдВ. рдЗрдиреНрд╣реЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧ, рддреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рддрд░реАрдХреЗ рдХреЛ FirebaseAuth.instanceFor(app: Firebase.app(), persistence: Persistence.LOCAL); рдХреЙрд▓ рдХрд░реЗрдВ. setPersistence(Persistence.NONE) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ, рдЕрдм рднреА рд╣рд░ рдкреБрд╖реНрдЯрд┐ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд╕рд┐рд╕реНрдЯреЗрдВрд╕ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.

// Disable persistence on web platforms. Must be called on initialization:
final auth = FirebaseAuth.instanceFor(app: Firebase.app(), persistence: Persistence.NONE);
// To change it after initialization, use `setPersistence()`:
await auth.setPersistence(Persistence.LOCAL);

рдЕрдЧрд▓реЗ рдЪрд░рдг

рд╕рд╛рдЗрди рдЗрди рдФрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╕реЗ рдЬреБрдбрд╝реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ.