Я подаю заявку, но не могу выполнить аутентификацию.
Мне нужно перенаправить администратора в одно место, а пользователя - в другое, но оба входят в экран пользователя, и он, похоже, не идентифицирует если он является администратором или постоянным пользователем. Роли уже сделаны в Firebase, но я не знаю, плохо ли реализована моя реализация, и поэтому она не работает
Буду признателен за любой вклад в улучшение
import 'package:compound/locator.dart';
import 'package:compound/models/user.dart';
import 'package:compound/services/analytics_service.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/foundation.dart';
import 'package:compound/services/firestore_service.dart';
class AuthenticationService {
final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
final FirestoreService _firestoreService = locator<FirestoreService>();
final AnalyticsService _analyticsService = locator<AnalyticsService>();
User _currentUser;
User get currentUser => _currentUser;
Future loginWithEmail({
@required String email,
@required String password,
}) async {
try {
var authResult = await _firebaseAuth.signInWithEmailAndPassword(
email: email,
password: password,
);
return authResult.user != null;
} catch (e) {
return e.message;
}
}
Future signUpWithEmail({
@required String email,
@required String password,
@required String fullName,
@required String role,
}) async {
try {
var authResult = await _firebaseAuth.createUserWithEmailAndPassword(
email: email,
password: password,
);
// create a new user profile on firestore
_currentUser = User(
id: authResult.user.uid,
email: email,
fullName: fullName,
userRole: role,
);
await _firestoreService.createUser(_currentUser);
await _analyticsService.setUserProperties(
userId: authResult.user.uid,
userRole: _currentUser.userRole,
);
return authResult.user != null;
} catch (e) {
return e.message;
}
}
Future<bool> isUserLoggedIn() async {
var user = await _firebaseAuth.currentUser();
return user != null;
}
}