想要向新用户显示欢迎页面,并在 Flutter Firebase 中向登录用户显示主屏幕

Posted

技术标签:

【中文标题】想要向新用户显示欢迎页面,并在 Flutter Firebase 中向登录用户显示主屏幕【英文标题】:Want to show Welcome Page to new user and Home Screen to Logged in users in flutter Firebase 【发布时间】:2021-08-19 15:45:10 【问题描述】:

我有这个 Flutter 应用程序,它向登录用户显示一些数据,但每次即使登录用户打开应用程序也会打开欢迎屏幕,我希望欢迎屏幕仅在用户注销或没有时打开t 登录,开始。

这是main.dart:

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:masterpass/Screens/Welcome/welcome_screen.dart';
import 'package:masterpass/components/constants.dart';

void main() async 
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());


class MyApp extends StatelessWidget 
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      title: 'MasterPass',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primaryColor: kPrimaryColor,
        scaffoldBackgroundColor: Colors.white,
      ),
      home: WelcomeScreen(),
    );
  

github上的代码:MasterPass

【问题讨论】:

【参考方案1】:

您可以使用StreamBuilder

StreamBuilder(
    stream: FirebaseAuth.instance.authStateChanges(),
    builder: (_, snapshot) 
      if (snapshot.data == null)  //if user isn't signed in
        return LoginScreen();
      
      return HomeSite(); //if user is signed in
    );

【讨论】:

【参考方案2】:

您可以检查用户是否使用FirebaseAuth.instance.currentUser != null 登录并使用该逻辑设置主页。 例如:

home: (FirebaseAuth.instance.currentUser != null)
          ? HomePageWhenLoggedIn()
          : WelcomeScreen(),

【讨论】:

以上是关于想要向新用户显示欢迎页面,并在 Flutter Firebase 中向登录用户显示主屏幕的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中预缓存 html 页面

使用哪种方法来保存游戏数据并在 Flutter 中显示它们? [关闭]

Flutter Navigator.pushReplacementNamed 在页面显示返回按钮

如何从存储中选择多个图像并在 Flutter 和 Flutter Web App 中显示? [关闭]

如何制作像生物编辑器一样的 Tinder - Flutter

将数据构建回 ListView Builder [Flutter]