Я создаю код входа через firebase. Я хочу войти в систему только для пользователя, который зарегистрировался и сертифицировал по электронной почте и настроил его так, чтобы он мог автоматически входить в систему. Создал код с помощью streambuilder для автоматического входа c. Однако автоматическая c ошибка аутентификации электронной почты для входа возникает, когда получатель равен нулю. Есть ли способ поставить трубку? Или я был бы признателен, если бы вы сказали мне, как ее решить.
import 'dart:io';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutteridmemo/pages/log_in_page.dart';
import 'package:flutteridmemo/pages/memo_page.dart';
import 'package:hive/hive.dart';
import 'package:path_provider/path_provider.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
Directory document = await getApplicationDocumentsDirectory();
Hive.init(document.path);
await Hive.openBox<String>("DB");
runApp(MyApp());
}
bool isFirstData = true;
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
FirebaseUser _firebaseUser;
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark().copyWith(
canvasColor: Colors.transparent,
),
title: 'ID_Memo_Memo',
home: StreamBuilder<FirebaseUser>(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (context, snapshot) {
if (isFirstData) {
isFirstData = false;
return Center(
child: CircularProgressIndicator(),
);
} else {
if (snapshot.hasData && _firebaseUser.isEmailVerified == true) {
return MemoPage();
} else {
return LogInPage();
}
}
},
),
);
}
}
Это ошибка.
I/flutter (14699): The following NoSuchMethodError was thrown building
StreamBuilder<FirebaseUser>(dirty, state:
I/flutter (14699): _StreamBuilderBaseState<FirebaseUser,
AsyncSnapshot<FirebaseUser>>#963d7):
I/flutter (14699): The getter 'isEmailVerified' was called on null.
I/flutter (14699): Receiver: null
I/flutter (14699): Tried calling: isEmailVerified
I/flutter (14699):
I/flutter (14699): The relevant error-causing widget was:
I/flutter (14699): StreamBuilder<FirebaseUser> enter code here