如何从类到另一个类颤振检索 Firebase 数据库

时间:2020-12-31 10:33:43

标签: firebase flutter google-cloud-firestore

嗨,我是 flutter 的新手,我想检索当前登录的姓名和电子邮件,并从此类中显示

String Name;
String CID;
String Email;



class _AuthScreenState extends State<AuthScreen> {
  final _auth = FirebaseAuth.instance;
  AuthScreen As = new AuthScreen();

  var _isLoading = false;

  void _sumbitAuthForm(String name, String CivilID, String email,
      String password, bool isLogin, BuildContext ctx) async {
    UserCredential authResult;
    try {
      setState(() {
        _isLoading = true;
      });
      if (isLogin) {
        authResult = await _auth.signInWithEmailAndPassword(
          email: email,
          password: password,
        );
      } else {
        authResult = await _auth.createUserWithEmailAndPassword(
          email: email,
          password: password,
        );
      }
      ;

      await FirebaseFirestore.instance
          .collection('Users')
          .doc(authResult.user.uid)
          .set({
        'Name': name,
        'Civil ID': CivilID,
        'email': email,
      });
    } on PlatformException catch (err) {
      var message = 'An error occurred, please check your credentials!';

      if (err.message != null) {
        message = err.message;
      }
      Scaffold.of(ctx).showSnackBar(
        SnackBar(
          content: Text(message),
          backgroundColor: Theme.of(ctx).errorColor,
        ),
      );

      setState(() {
        _isLoading = false;
      });
    } catch (err) {
      print(err);
      setState(() {
        _isLoading = false;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Authform(
        _sumbitAuthForm,
        _isLoading,
      ),
    );
  }
}

到这个班

import 'package:Motri/widgets/Auth/auth_form.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_auth/firebase_auth.dart';
import '../models/mainFeatures.dart';
import '../widgets/Auth/mainFeatures_form.dart';
import 'package:Motri/screens/AuthFirebase.dart';


    class MainMotri extends StatelessWidget {
    
      
      @override
      Widget build(BuildContext context) {
    
        return Scaffold(
          appBar: AppBar(
            title: Text('Motri'),
          ),
          drawer: Drawer(
            child: ListView(
              // Important: Remove any padding from the ListView.
              padding: EdgeInsets.zero,
              children: <Widget>[
                UserAccountsDrawerHeader(
                  accountName: Text(
                   "h"
                  ),
                  accountEmail: Text("abhishekm977@gmail.com"),
                  currentAccountPicture: CircleAvatar(
                    backgroundColor: Colors.orange,
                    child: Text(
                      "A",
                      style: TextStyle(fontSize: 40.0),
                    ),
                  ),
                ),
              ],
            ),
          ),
         
        );
      }
    }

在抽屉上显示姓名和用户电子邮件,但我不知道如何将数据库字段从类传递到另一个

我还查看了人们在 SO 上发布的其他解决方案,但我无法让它们适用于我的特定案例

0 个答案:

没有答案