我正在嘗試在此播放串列的幫助下創建一個用戶系統。但是,它有點過時了,所以我正在努力跟上今天的步伐。我完全是初學者。我從 stackoverflow 中讀到了一些東西,但我跟不上。這是它給出的錯誤:
The argument type 'Stream<MyUser?>' can't be assigned to the parameter type 'Stream<MyUser?>?'.
這是 main.dart :(具體錯誤在“value: AuthService().user,”行中。“AuthService().user”部分是紅色下劃線。)
import 'package:flutter/material.dart';
import 'package:unistuff_main/screens/wrapper.dart';
import 'package:provider/provider.dart';
import 'package:unistuff_main/services/auth.dart';
import 'package:unistuff_main/models/myuser.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return StreamProvider<MyUser?>.value(
initialData: null,
value: AuthService().user,
child: MaterialApp(
home: Wrapper(),
),
);
}
}
這是我的 myuser.dart 檔案:
class MyUser {
final String? uid;
MyUser({this.uid});
}
這里是 auth.dart:(如果你注意到我還沒有添加任何登錄方法。這會導致問題嗎?)
import 'package:firebase_auth/firebase_auth.dart';
import 'package:unistuff_main/models/MyUser.dart';
class AuthService {
final FirebaseAuth _auth = FirebaseAuth.instance; //private data member
//create MyUser object based on FirebaseUser
MyUser? _userfromFirebase(User user) {
return user != null ? MyUser(uid: user.uid) : null;
}
//auth change user stream
Stream<MyUser?> get user {
return _auth
.authStateChanges()
.map((User? user) => _userfromFirebase(user!));
}
//sign in with email & password
Future signInWithMail() async {
try {} catch (e) {}
}
//register with email & password
//sign out
}
謝謝你的幫助..
uj5u.com熱心網友回復:
似乎您的 AuthService().user 的型別不能為空,因此嘗試將用戶的型別從 auth.dart 更改為 Stream<MyUser?>?。
Stream<MyUser?>? get onAuthStateChanges => FirebaseAuth.instance
.authStateChanges()
.map((currentUser) => MyUser.fromSnapshot(currentUser!));
我不確定,但您可能正在使用 FirebaseAuth.instance 中的 authStateChanges()。因此,如果它不能解決您的問題,請列印 AuthService().user :)
uj5u.com熱心網友回復:
在發生錯誤的行中,嘗試使用運算子 ?? 如果為空,則傳遞原始物件。
例如:
MyObject(
stringField: myString ?? '', //you are ensuring that if your String is null, there will be no error
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/375968.html
上一篇:從BeautifulSoup創建的串列包含多個條目——需要一個唯一的鏈接串列
下一篇:對JSON的最后五個物件求和
