每当我在onPressed函数中调用此函数(_sendToServer)时,都会出现此错误。 错误:不能将参数类型“ Type”分配给参数类型“ FirebaseUser”。 (argument_type_not_assignable位于[robic] lib \ profile_page2.dart:117) 我如何解决这个问题。
_sendToServer(FirebaseUser user) {
if (_key.currentState.validate()) {
_key.currentState.save();
DatabaseReference ref = FirebaseDatabase.instance.reference();
var data = {
"name": name,
"profession": profession,
"message": message,
"id": user.uid,
};
ref.child('node-name').push().set(data).then((v) {
_key.currentState.reset();
});
} else {
setState(() {
_autovalidate = true;
});
}
}
onPressed: () {_sendToServer(FirebaseUser);},
答案 0 :(得分:1)
您需要从FirebaseAuth获取当前用户
改为尝试
_sendToServer() async{
FirebaseUser user = await FirebaseAuth.instance.currentUser();
if (_key.currentState.validate()) {
_key.currentState.save();
DatabaseReference ref = FirebaseDatabase.instance.reference();
var data = {
"name": name,
"profession": profession,
"message": message,
"id": user.uid,
};
ref.child('node-name').push().set(data).then((v) {
_key.currentState.reset();
});
} else {
setState(() {
_autovalidate = true;
});
}
}
调用这样的函数
onPressed: () {_sendToServer();},
别忘了导入FirebaseAuth
import 'package:firebase_auth/firebase_auth.dart';
答案 1 :(得分:1)
您只需要将 onPressed(){_ sendToServer(FirebaseUser)} 中的 FirebaseUser 更改为 FirebaseUser()
onPressed: () {_sendToServer(FirebaseUser());},