【发布时间】:2021-10-19 22:26:59
【问题描述】:
错误:我在 Stream while mapping
中遇到错误参数类型'UserModel? Function(User)' 不能分配给参数类型'UserModel Function(User?)' 代码和目录
-user.dart
class UserModel {
final String id;
UserModel({required this.id});
}
-auth.dart
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_login/models/user.dart';
import 'package:flutter/cupertino.dart';
//Create UserModel Object
UserModel? _userFromFireBase(User user){
// ignore: unnecessary_null_comparison
return user != null ? UserModel(uid: user.uid) : null;
}
class AuthService {
final FirebaseAuth _auth = FirebaseAuth.instance;
// auth change user stream
Stream<UserModel> get users{
return _auth.authStateChanges().map(_userFromFireBase);
}
//sign-in method
Future signInAnon() async{
try{
UserCredential result = await _auth.signInAnonymously();
User? user = result.user;
return _userFromFireBase(user!);
}catch(e){
print(e.toString());
return null;
}
【问题讨论】:
-
欢迎来到 StackOverflow!请阅读how to write a good question。您是否阅读过有关 Dart 中 null 安全性的文档?
标签: flutter firebase-authentication flutter-web flutter-streambuilder