Авторизация firebase flutter

Пытаюсь авторизовать пользователя в мобильном приложении flutter и получаю следующую ошибку:

(18558): Ignoring header X-Firebase-Locale because its value was null.

D/FirebaseAuth(18558): Notifying id token listeners about user ( zzMk216grBTgKQovp8drzPbA9YR2 ).

Регистрация вроде как проходит успешно, новые пользователи появляются добавляются в бд. Вот код

import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:rick_and_morty/feature/domain/user.dart';


class AuthService{
  final FirebaseAuth _fAuth = FirebaseAuth.instance;

  Future signInWithEmailAndPassword(String email, String password) async {
    try {
       UserCredential result = await _fAuth.signInWithEmailAndPassword(email: email, password: password); 
      User user = result.user;
      return UserC.fromFirebase(user);
    } catch (e) {
      print(e);
      return null;
    }
  }


  Future registerInWithEmailAndPassword(String email, String password) async {
    try {
       UserCredential result = await _fAuth.createUserWithEmailAndPassword(email: email, password: password); 
      User user = result.user;
      return UserC.fromFirebase(user);
    } catch (e) {
      print(e);
      return null;
    }
  }
  Future logOut() async {
    await _fAuth.signOut();
  }

  Stream<UserC> get currentUser{
    return _fAuth.authStateChanges().map((User user) => user != null ? UserC.fromFirebase(user) : null);
  }
}

Страница регистрации/ авторизации

import 'dart:ffi';

import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:rick_and_morty/auth.dart';
import 'package:rick_and_morty/feature/domain/user.dart';

class AuthorizationPage extends StatefulWidget {
  AuthorizationPage({Key key}) : super(key: key);

  @override
  State<AuthorizationPage> createState() => _AuthorizationPageState();
}

class _AuthorizationPageState extends State<AuthorizationPage> {
  TextEditingController _emailController = TextEditingController();
  TextEditingController _passwordController = TextEditingController();
String _email;
String _password;
bool showLogin = true;

AuthService _authService = AuthService();
  @override
  Widget build(BuildContext context) {
    Widget _logo() {
      return Padding(
        padding: EdgeInsets.only(top: 100),
        child: Container(
          child: Align(
            child: Text('Rick and Morty',
                style: TextStyle(
                    fontSize: 35,
                    fontWeight: FontWeight.bold,
                    color: Colors.white)),
          ),
        ),
      );
    }

    Widget _input(Icon icon, String hint, TextEditingController controller,
        bool obscure) {
      return Container(
        padding: EdgeInsets.only(left: 20, right: 20),
        child: TextField(
          controller: controller,
          obscureText: obscure,
          style: TextStyle(fontSize: 20, color: Colors.white),
          decoration: InputDecoration(
            hintStyle: TextStyle(
                fontWeight: FontWeight.bold,
                fontSize: 20,
                color: Colors.white30),
            hintText: hint,
            focusedBorder: OutlineInputBorder(
              borderSide: BorderSide(color: Colors.white, width: 3),
            ),
            enabledBorder: OutlineInputBorder(
                borderSide: BorderSide(color: Colors.white54, width: 1)),
            prefixIcon: Padding(
              padding: EdgeInsets.only(left: 10, right: 10),
              child: IconTheme(
                data: IconThemeData(color: Colors.white),
                child: icon,
              ),
            ),
          ),
        ),
      );
    }
Widget _button(String text, void func()){
  return RaisedButton(
    splashColor: Theme.of(context).primaryColor,
    highlightColor: Theme.of(context).primaryColor,
    color: Colors.white,
    child: Text(text, style: TextStyle(fontWeight: FontWeight.bold, color: Theme.of(context).primaryColor, fontSize: 20)
    
    ),
    onPressed: (){
      func();
    },
  
  );
}
    Widget _form(String label, void func()) {
      return Container(
        child: Column(
          children: <Widget>[
            Padding(
                padding: EdgeInsets.only(bottom: 20, top: 10),
                child: _input(
                    Icon(Icons.email), "EMAIL", _emailController, false)),
            Padding(
                padding: EdgeInsets.only(bottom: 20, top: 10),
                child: _input(Icon(Icons.lock), "PASSWORD",
                    _passwordController, true)),
            SizedBox(
              height: 20,
            ),
            Padding(
              padding: EdgeInsets.only(left: 20, right: 20),
              child: Container(
                height: 50,
                width: MediaQuery.of(context).size.width,
                child: _button(label, func),
              ),
            )
          ],
        ),
      );
    }
void _LoginButtonAction() async {
  _email = _emailController.text;
  _password = _passwordController.text;
if(_email.isEmpty || _password.isEmpty) return;
UserC user = await _authService.signInWithEmailAndPassword(_email.trim(), _password.trim());
if (user == null)
{
  Fluttertoast.showToast(
        msg: "Can't SignIn you! Please check your email/password",
        toastLength: Toast.LENGTH_SHORT,
        gravity: ToastGravity.CENTER,
        timeInSecForIosWeb: 1,
        backgroundColor: Colors.red,
        textColor: Colors.white,
        fontSize: 16.0
    );

} else{
  _emailController.clear();
  _passwordController.clear();

}
}
void _RegisterButtonAction() async {
  _email = _emailController.text;
  _password = _passwordController.text;
if(_email.isEmpty || _password.isEmpty) return;
UserC user = await _authService.registerInWithEmailAndPassword(_email.trim(), _password.trim());
if (user == null)
{
  Fluttertoast.showToast(
        msg: "Can't Register you! Please check your email/password",
        toastLength: Toast.LENGTH_SHORT,
        gravity: ToastGravity.CENTER,
        timeInSecForIosWeb: 1,
        backgroundColor: Colors.red,
        textColor: Colors.white,
        fontSize: 16.0
    );

} else{
  _emailController.clear();
  _passwordController.clear();

}
}
    return Scaffold(
      body: Column(
        children: <Widget>[
          _logo(),
          SizedBox(height: 100,),
          (
            showLogin
            ? Column(
              children: <Widget>[
             _form('Login', _LoginButtonAction),
             Padding(
               padding: EdgeInsets.all(10),
               child: GestureDetector(child: Text('Not registered yet? Register!', style: TextStyle(fontSize: 20, color: Colors.white)

              ),
              onTap:() {
                setState((){
                  showLogin = false;
                }); 
                } 
              ),
              )
              ],
            )
            : Column(
              children: <Widget>[
             _form('REGISTER', _RegisterButtonAction),
             Padding(
               padding: EdgeInsets.all(10),
               child: GestureDetector(child: Text('Allready registered? Login!', style: TextStyle(fontSize: 20, color: Colors.white)

              ),
              onTap:() {
                setState((){
                  showLogin = true;
                }); 
              

                } 
              ),
              )
              ],
            )
          ),  
     
        ],
        
      ),
    );
  }
}


Ответы (0 шт):