Как реализовать оповещения пользователей, когда пользователи регистрируются с использованием аутентификации Firebase во Flutter - PullRequest
0 голосов
/ 19 февраля 2020

Здравствуйте, я пытаюсь выяснить, как реализовать оповещения, когда пользователи пытаются войти или зарегистрироваться в моем приложении.

Ниже приведен код моей страницы "auth-service-dart", и я пытаюсь чтобы отобразить сообщение об ошибке, которое отображается в консоли из (print (e)) в соответствии с приведенным ниже кодом, на мою страницу регистрации, где у меня есть кнопка регистрации, поэтому в результате я хочу, чтобы приложение показывало предупреждения, если пользователи делают ошибки, такие как добавление адрес электронной почты, который уже был добавлен или неправильный адрес электронной почты.

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';

class AuthService {
  static final _auth = FirebaseAuth.instance;

  static final _firestore = Firestore.instance;

  static void signUpUser(
      BuildContext context, String name, String email, String password) async {
    try {
      AuthResult authResult = await _auth.createUserWithEmailAndPassword(
        email: email,
        password: password,
      );
      FirebaseUser signedInUser = authResult.user;
      if (signedInUser != null) {
        _firestore.collection('/users').document(signedInUser.uid).setData({
          'name': name,
          'email': email,
          'profileImageUrl': '',
        });
        Navigator.pushReplacementNamed(context, signedInUser.uid);
        //Provider.of<UserData>(context).currentUserId = signedInUser.uid;
        //Navigator.pop(context);
      }
    } catch (e) {
      print(e);
    }
  }

  static void logout() {
    _auth.signOut();
    //Navigator.pushReplacementNamed(context, LoginScreen.id);
  }

  static void login(String email, String password) async {
    try {
      await _auth.signInWithEmailAndPassword(email: email, password: password);
    } catch (e) {
      print(e);
    }
  }
}

1 Ответ

0 голосов
/ 20 февраля 2020

вы можете использовать showDialog , предоставленный flutter; Вот простой код для этого в вашем виджете

 showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text('Error happend'),
          content: Text(// your errro code here),
          actions: <Widget>[
            MaterialButton(
              onPressed: () {
                Navigator.of(context).pop();
              },
              color: Theme.of(context).primaryColor,
              child: Text(language['ok']),
            ),
          ],
        );
      },
    );
...