我正在为我的大学项目制作一个颤动应用程序,我正在添加一个登录和注册页面并通过Firebase进行身份验证,当我点击登录时,调试控制台显示“错误类型'AuthResult'不是类型转换中类型'FirebaseUser'的子类型”,当我在此错误后重新加载应用程序时,它成功登录。
在此次更新后,firebase_auth包更新到0.12.0之前一切都运行良好,方法“signInSusEmailAndPassword()”和“createUserSusEmailAndPassword()”抛出错误“不能将“AuthResult”类型的值分配给“Firebase User”类型的变量。尝试更改变量的类型,或将右侧类型转换为“Firebase User”,因此我添加了一个强制转换为Firebase User,修复了错误并成功构建了应用程序,但当我单击登录或创建帐户时,调试控制台表示错误类型“AuthResult”不是类型转换中“Firebase User”类型的子类型
firebase_auth 0.12.0更新之前的主登录和创建帐户功能代码
Future<String> signIn(String email, String password) async {
FirebaseUser user = await
FirebaseAuth.instance.signInWithEmailAndPassword(
email: email, password: password);
return user.uid;
}
Future<String> createUser(String email, String password) async {
FirebaseUser user = await
FirebaseAuth.instance.createUserWithEmailAndPassword(
email: email, password: password);
return user.uid;
}
上面的代码工作正常,更新(firebase_auth0.12.0)后,相同的代码开始抛出这个错误,
A value of type 'AuthResult' can't be assigned to a variable of type
'FirebaseUser'.
Try changing the type of the variable, or casting the right-hand type to
'FirebaseUser'.dart(invalid_assignment)
我通过施放“Firebase User”修复了错误,如下所示
Future<String> signIn(String email, String password) async {
FirebaseUser user = await
FirebaseAuth.instance.signInWithEmailAndPassword(
email: email, password: password) as FirebaseUser;
return user.uid;
}
Future<String> createUser(String email, String password) async {
FirebaseUser user = await
FirebaseAuth.instance.createUserWithEmailAndPassword(
email: email, password: password) as FirebaseUser;
return user.uid;
}
这个新代码没有在编译中抛出错误,但是当我尝试登录或创建新帐户时,它会在调试控制台中引发错误 错误类型“AuthResult”不是类型转换中类型“FirebaseUser”的子类型,并且新创建的帐户在firebase上成功创建,但应用程序不会进入下一页,但一旦我重新加载它,它就会从登录后应该出现的页面开始,并且创建帐户(注销工作正常)
这些类已被重命名。“AuthResult”已重命名为“UserCredential”,“FirebaseUser”已重命名为“User”。
我也面临同样的问题。只需修改为:
< code > final firebase user user =(await _ auth . signinwithcredential(credential))。用户;
看见https://github.com/flutter/flutter/issues/38757#issuecomment-522307525
这是插件中的一个突破性的变化,它记录在这里https://pub.dev/packages/firebase_auth#0120
因此,您不应该进行任何类型的转换,您只需重构代码以采用新的更改:
FirebaseUser user = (await FirebaseAuth.instance.
signInWithEmailAndPassword(email: email, password: password))
.user;
我有一个json格式的地图列表,我正试图在列表上呈现“title”。 我通过一个api(http.get)读取数据,然后解析它。 我想在列表中显示标题。 这是我的代码... 获取数据 转换为json 欢迎参加模范班 我得到一个错误说"类型'列表'不是类型'地图的子类型
我想在我的主页上显示我的JSON数据,但我有一个问题。当我运行时,出现一条错误消息“以下类型错误被抛出构建FutureBuilder(脏,状态:_FutureBuilderState#d0e99):”和(错误:类型“List”不是类型“Map”的子类型 下面是我的示例JSON片段(注意:这是本地JSON): 以下是我的餐厅档案: 下面是主页代码:
我有一个FirebaseActions类,它为我做注册和登录工作。我在其中添加了一个getCurrentUser方法。我从我的主屏幕小部件调用这个函数。我需要将返回值(type= FirebaseUser)放入主屏幕的一个变量中,以访问loggedInUser.email。我的问题;有什么方法可以将FirebaseUser类型数据转换成Future类型变量?当我在HomeScreen而不是Fire
这是我的代码: 我得到的错误是: _类型错误(类型“\u InternalLinkedHashMap
out webserver将此结果返回为: 我用这个结构类来解析它 现在,当我从服务器成功获取数据时,我无法返回该数据,例如: 对于这行代码: 返回tring.map 我得到这个错误: 类型列表不是类型转换中的类型映射的子类型
我有一个错误,当试图解析我的JSON并显示在文本中,而不是作为一个。 下面是我的JSON结构。 这是我的未来API异步。 这是我显示JSON的代码。 当我试图获取数据时,我得到了这样的错误。 我应该修复哪个代码?