我正在尝试使用 firebase_auth 使用电子邮件和密码创建身份验证,该代码有3页。1.主页,用于检查连接是否已建立或用户是否已登录。并导航到由功能_handleWidnowDisplay()
完成的各个页面。
但是由于某种原因,该应用卡在了if (snapshot.connectionState == ConnectionState.waiting){}
块中,无法连接到firebase。
在添加Firebase依赖项时,我遇到了一些问题,可以通过在 gradel.properties 中添加android.useAndroidX=true
和android.enableJetifier=true
来解决。
import 'package:flutter/material.dart';
import 'screens/MyLogin.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'screens/MainPage.dart';
void main() => runApp(new MaterialApp(
color: Colors.red,
home: _handleWidnowDisplay(),
));
Widget _handleWidnowDisplay() {
return StreamBuilder(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (BuildContext context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Scaffold(
appBar: AppBar(
title: new Text("MyLogin"),
backgroundColor: Colors.red.shade900,
),
body: new Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
color: Colors.red.shade900,
child: new Center(
child: new Text("Loding....."),
)));
} else if (snapshot.hasData) {
return MainPAge();
} else {
return MyLogin();
}
},
);
}
答案 0 :(得分:0)
如果它处于等待状态,那么我的第一个直觉将是检查设备的连接性。编辑AndroidManifest.xml以允许INTERNET_PERMISSION。我看不到实际登录的方法,因此将状态更改为“不等待”,因此请确保实际正在调用该方法。