Firebase 인증으로 등록과 로그인을 모두 사용하여 Flutter로 앱을 성공적으로 설정했습니다.
로그인 후 홈 화면으로 돌아와서 사용자에게 다음을 제공합니다.
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
final FirebaseAuth _auth = FirebaseAuth.instance;
FirebaseUser user;
@override
void initState() {
super.initState();
initUser();
}
initUser() async {
user = await _auth.currentUser();
setState(() {});
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
//appBar: AppBar(title: const Text("Run to Feel Better")),
body: Center(
child: Column(
children: <Widget>[
if (user == null)
RoundedButton(
buttonTitle: 'Crea un account',
color: kRTFBBlue,
onPressedFunction: () {
Navigator.pushNamed(context, '/account');
},
)
else
Text("${user?.email}"),
],
),
),
bottomNavigationBar: bottomBar(context, 0),
), // /widgets/home_scaffold.dart
);
}
}
그래서 모든 것이 잘 작동하지만 내 질문은 : 현재 사용자를 다른 페이지로 가져 오는 올바른 방법은 무엇입니까? FirebaseAuth.instance로 모든 화면을 다시 체크인해야하나요? 아니면 저장하고 페이지간에 공유 할 수 있나요 (아마도 Provider 패키지를 사용하여)?
대단히 감사합니다.
물론 두 가지를 모두 수행 할 수 있습니다. 즉 상태 관리를FirebaseAuth
사용 하여 인스턴스를 어딘가에 저장할 수 있지만 항상 호출 할 수도 있습니다 .FirebaseAuth.instance
내가 생각할 수있는 유일한 귀중한 통찰력은 전화 FirebaseAuth.instance
가 완전히 괜찮다 는 것입니다 (특히 비싸지는 않음). 다른 모든 것은 아마도 전적으로 의견에 근거한 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다