参数类型“Type”不能分配给参数类型“FirebaseUser”
Posted
技术标签:
【中文标题】参数类型“Type”不能分配给参数类型“FirebaseUser”【英文标题】:The argument type 'Type' can't be assigned to the parameter type 'FirebaseUser' 【发布时间】:2020-08-04 17:39:15 【问题描述】:每当我在 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);,
【问题讨论】:
这里_sendToServer(FirebaseUser)
你只传递了 FirebaseUser 类型...
那我应该写什么。我实际上是想从中获取用户 ID。
【参考方案1】:
您只需将 onPressed()_sendToServer(FirebaseUser) 中的 FirebaseUser 更改为 FirebaseUser()
onPressed: () _sendToServer(FirebaseUser());,
【讨论】:
【参考方案2】:您需要从 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';
【讨论】:
以上是关于参数类型“Type”不能分配给参数类型“FirebaseUser”的主要内容,如果未能解决你的问题,请参考以下文章
错误:[dart] 参数类型“Context”不能分配给参数类型“BuildContext”。 [argument_type_not_assignable]
参数类型 'Book' 不能分配给参数类型 'Map<String, dynamic>'.dart(argument_type_not_assignable)
错误:参数类型“上下文”不能分配给参数类型“BuildContext”
TextFormField 验证器参数类型“动态函数()”不能分配给