每当我在onPressed函数中调用此函数(_sendToServer)时,都会出现此错误。
错误:无法将参数类型“类型”分配给参数类型“FirebaseUser”。 (在[robic] lib \ profile_page2.dart:117处为argument_type_not_assignable)
我怎么解决这个问题。
_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);},
最佳答案
您需要从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';
关于firebase - 无法将参数类型 'Type'分配给参数类型 'FirebaseUser',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61352617/