firebase - 带系统 (6271) : Ignoring header X-Firebase-Locale because its value was null

标签 firebase flutter firebase-authentication

当用户登录或注册时,我在终端Ignoring header X-Firebase-Locale because its value was null出现此错误。当用户登录时,屏幕不会更改状态。我已启用电子邮件密码登录,在我的 firebase.console 上为此应用程序使用 SHA-1 和 SHA-256(从 ./gradlew signingReport 获取),但仍然继续收到此错误终端,我不知道如何解决这个问题。真的需要你的帮助。

下面是我的代码和目录。

auth.dart

import 'package:firebase_auth/firebase_auth.dart';
import 'package:twitterclone/models/users.dart';

class AuthService {
  FirebaseAuth auth = FirebaseAuth.instance;

  UserModel? _userFromFirebaseUser(User? user) {
    return user != null ? UserModel(id: user.uid) : null;
  }

  Stream<UserModel?> get user {
    return auth.authStateChanges().map(_userFromFirebaseUser);
  }

  Future signUp(emailSignUp, passwordSignUp) async {
    try {
      User user = (await auth.createUserWithEmailAndPassword(
          email: emailSignUp, password: passwordSignUp) as User);
      _userFromFirebaseUser(user);
    } on FirebaseAuthException catch (e) {
      if (e.code == 'weak-password') {
        print('The password provided is too weak.');
      } else if (e.code == 'email-already-in-use') {
        print('The account already exists for that email.');
      }
    } catch (e) {
      print(e);
    }
  }

  Future signIn(emailSignIn, passwordSignIn) async {
    try {
      User user = (await auth.signInWithEmailAndPassword(
          email: emailSignIn, password: passwordSignIn) as User);
      _userFromFirebaseUser(user);
    } on FirebaseAuthException catch (e) {
      print(e);
    } catch (e) {
      print(e);
    }
  }

  Future signOut() async {
    try {
      return await auth.signOut();
    } catch (e) {
      print(e.toString());
      return null;
    }
  }
}

wrapper.dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:twitterclone/models/users.dart';
import 'package:twitterclone/screens/auth/welcome.dart';
import 'package:twitterclone/screens/mainscreen/feedscreen.dart';

class Wrapper extends StatelessWidget {
  const Wrapper({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    final user = Provider.of<UserModel?>(context);
    if (user == null) {
      print('no user');
      return Welcome();
    }
    print('has user');
    return FeedScreen();
  }
}

user.dart

class UserModel {
  final String? id;
  UserModel({this.id});
}

main.dart

import 'dart:core';
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:provider/provider.dart';
import 'package:twitterclone/models/users.dart';
import 'package:twitterclone/services/auth/auth.dart';
import 'package:twitterclone/wrapper/wrapper.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  final Future<FirebaseApp> _initialization = Firebase.initializeApp();

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      future: _initialization,
      builder: (context, snapshot) {
        // Check for errors
        if (snapshot.hasError) {
          return Text('Oops, something went error. Try to restart the app.');
        }

        // Once complete, show your application
        if (snapshot.connectionState == ConnectionState.done) {
          return StreamProvider<UserModel?>.value(
            value: AuthService().user,
            initialData: null,
            child: MaterialApp(home: Wrapper()),
          );
        }

        // Otherwise, show something whilst waiting for initialization to complete
        return Text('Loading...');
      },
    );
  }
}

最佳答案

我希望你忘记添加 ChangeNotifier

class AuthService { ... 替换为 class AuthService with ChangeNotifier{ ...

关于firebase - 带系统 (6271) : Ignoring header X-Firebase-Locale because its value was null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66920544/

相关文章:

javascript - 使用 Firebase 进行 Microsoft 单租户身份验证

angular - 如何为 Subject RxJS observable 分配初始值?

android - Xamarin、Android、Firebase : "Defualt FirebaseApp is not initialized error". ..?

node.js - Firebase 管理员和自定义 token 数据传递到服务器

flutter - GridView的子级定义为类成员时不会重绘

flutter - 从 Flutter 应用程序中的 Firebase 实时数据库事件获取父节点

javascript - Firebase 函数 :Function returned undefined, 预期的 promise 或值(value)

firebase - 有没有一种简单的方法可以在 flutter 中本地缓存云 firestore 文档(不是离线持久化)?

swift - 我正在使用 firebase 在 swift 中测试登录身份验证并收到错误 get output frames failed, state 8196

android - 在 Firebase 中获取用户名、姓氏和 ID