getter 'user' 没有为类型 'Future<UserCredential>' 定义。 (FİREBASE AUTH)
The getter 'user' isn't defined for the type 'Future<UserCredential>'. (FİREBASE AUTH)
我正在学习 Flutter 课程,但我认为该课程有点旧,我收到这样的错误,
在这条线上;
@override
Future<auth.User?> logInWithEmailAndPassword(
{@required String? email,
@required String? sifre,
}) async {
try{
final credential = _firebaseAuth.signInWithEmailAndPassword(
email: email!,
password: sifre!,
);
return credential.user;
} on auth.FirebaseAuthException catch (err) {
throw Failure(code: err.code, message: err.message);
} on PlatformException catch (err) {
throw Failure(code: err.code, message: err.message);
}
}
return credential.user;
getter 'user' 没有为类型 'Future' 定义。 (文档)尝试导入定义 'user' 的库,将名称更正为现有 getter 的名称,或者定义一个 getter 或名为 'user'.[=16 的字段=]
视频中没有这个问题。我该如何解决?
import 'package:basla/config/paths.dart';
import 'package:basla/depolar/depolar.dart';
import 'package:basla/models/models.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart' as auth;
import 'package:flutter/services.dart';
import 'package:meta/meta.dart';
class AuthRepository extends BaseAuthRepository {
late final FirebaseFirestore _firebaseFirestore;
late final auth.FirebaseAuth _firebaseAuth;
AuthRepository({
FirebaseFirestore? firebaseFirestore,
auth.FirebaseAuth? firebaseAuth,
}) : _firebaseFirestore = firebaseFirestore ?? FirebaseFirestore.instance,
_firebaseAuth = firebaseAuth ?? auth.FirebaseAuth.instance;
@override
Stream<auth.User?> get user => _firebaseAuth.userChanges();
@override
Future<auth.User?> signUpWithEmailAndPassword(
{@required String? kullaniciadi,
@required String? email,
@required String? sifre}) async {
try {
final credential = await _firebaseAuth.createUserWithEmailAndPassword(
email: email!,
password: sifre!,
);
final user = credential.user;
_firebaseFirestore.collection(Paths.users).doc(user?.uid).set({
'Kullanıcı Adı': kullaniciadi,
'Email': email,
'Takipci': 0,
'Takip ': 0
});
return user;
} on auth.FirebaseAuthException catch (err) {
throw Failure(code: err.code, message: err.message);
} on PlatformException catch (err) {
throw Failure(code: err.code, message: err.message);
}
}
@override
Future<auth.User?> logInWithEmailAndPassword(
{@required String? email,
@required String? sifre,
}) async {
try{
final credential = _firebaseAuth.signInWithEmailAndPassword(
email: email!,
password: sifre!,
);
return credential.user;
} on auth.FirebaseAuthException catch (err) {
throw Failure(code: err.code, message: err.message);
} on PlatformException catch (err) {
throw Failure(code: err.code, message: err.message);
}
}
@override
Future<void> logOut() async {
await _firebaseAuth.signOut();
}
}
将 final credential = _firebaseAuth.signInWithEmailAndPassword(
更改为 final credential = await _firebaseAuth.signInWithEmailAndPassword(
。
您必须等待 signInWithEmailAndPassword
完成才能返回 credential.user
。
我正在学习 Flutter 课程,但我认为该课程有点旧,我收到这样的错误, 在这条线上;
@override
Future<auth.User?> logInWithEmailAndPassword(
{@required String? email,
@required String? sifre,
}) async {
try{
final credential = _firebaseAuth.signInWithEmailAndPassword(
email: email!,
password: sifre!,
);
return credential.user;
} on auth.FirebaseAuthException catch (err) {
throw Failure(code: err.code, message: err.message);
} on PlatformException catch (err) {
throw Failure(code: err.code, message: err.message);
}
}
return credential.user;
getter 'user' 没有为类型 'Future' 定义。 (文档)尝试导入定义 'user' 的库,将名称更正为现有 getter 的名称,或者定义一个 getter 或名为 'user'.[=16 的字段=]
视频中没有这个问题。我该如何解决?
import 'package:basla/config/paths.dart';
import 'package:basla/depolar/depolar.dart';
import 'package:basla/models/models.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart' as auth;
import 'package:flutter/services.dart';
import 'package:meta/meta.dart';
class AuthRepository extends BaseAuthRepository {
late final FirebaseFirestore _firebaseFirestore;
late final auth.FirebaseAuth _firebaseAuth;
AuthRepository({
FirebaseFirestore? firebaseFirestore,
auth.FirebaseAuth? firebaseAuth,
}) : _firebaseFirestore = firebaseFirestore ?? FirebaseFirestore.instance,
_firebaseAuth = firebaseAuth ?? auth.FirebaseAuth.instance;
@override
Stream<auth.User?> get user => _firebaseAuth.userChanges();
@override
Future<auth.User?> signUpWithEmailAndPassword(
{@required String? kullaniciadi,
@required String? email,
@required String? sifre}) async {
try {
final credential = await _firebaseAuth.createUserWithEmailAndPassword(
email: email!,
password: sifre!,
);
final user = credential.user;
_firebaseFirestore.collection(Paths.users).doc(user?.uid).set({
'Kullanıcı Adı': kullaniciadi,
'Email': email,
'Takipci': 0,
'Takip ': 0
});
return user;
} on auth.FirebaseAuthException catch (err) {
throw Failure(code: err.code, message: err.message);
} on PlatformException catch (err) {
throw Failure(code: err.code, message: err.message);
}
}
@override
Future<auth.User?> logInWithEmailAndPassword(
{@required String? email,
@required String? sifre,
}) async {
try{
final credential = _firebaseAuth.signInWithEmailAndPassword(
email: email!,
password: sifre!,
);
return credential.user;
} on auth.FirebaseAuthException catch (err) {
throw Failure(code: err.code, message: err.message);
} on PlatformException catch (err) {
throw Failure(code: err.code, message: err.message);
}
}
@override
Future<void> logOut() async {
await _firebaseAuth.signOut();
}
}
将 final credential = _firebaseAuth.signInWithEmailAndPassword(
更改为 final credential = await _firebaseAuth.signInWithEmailAndPassword(
。
您必须等待 signInWithEmailAndPassword
完成才能返回 credential.user
。