firebase: el parámetro uid no puede tener un valor nulo debido a su tipo, pero el valor predeterminado implícito es nulo.

CorePress2024-01-25  9

Tengo un problema desconocido con la aplicación Flutter ya que actualicé mis dependencias de Firebase y de repente marca todo esto.uid, claves y muchas más cosas conectadas con Firebase como un error. Tal vez podría deberse a la actualización del SDK, no estoy seguro.

He marcado el lugar del error con ** en el ejemplo

 class Home extends StatefulWidget {
  Home*({this.uid, Key key})* : super(key: key);
  final String uid;

  @override
  _HomeState createState() => _HomeState();
}

class User {
  final String uid;
  final String name;
  final String email;
  final String city;

  User({*this.uid, this.email, this.city, this.name*});
}

error: el parámetro 'uid' no puede tener un valor 'nulo' debido a su tipo, pero el valor predeterminado implícito es 'nulo'. Pero también ocurre lo mismo con la clave

class _ChatRoomState extends State<ChatRoom> {
  DatabaseMethods databaseMethods = new DatabaseMethods();
  *Stream chatRoomsStream;*
....

Error: se debe inicializar el campo de instancia no anulable 'chatRoomsStream'.

final User user = FirebaseAuth.instance.currentUser;

Un valor de tipo '¿Usuario?' no se puede asignar a una variable de tipo 'Usuario'.

Cabe mencionar que en cada archivo de código están marcados en azul

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';

Fragmento de mis dependencias utilizadas en pubspec.yaml

  cupertino_icons: ^1.0.0
  firebase_auth: ^1.0.0
  firebase_core: ^1.0.2
  firebase_storage: ^8.0.0
  firebase_database: ^6.0.0
  firebase_core_platform_interface: ^4.0.0
  cloud_firestore: ^1.0.0
  shared_preferences: ^2.0.0
  favorite_button: ^0.0.3
  image_picker: ^0.7.3
  image_cropper: ^1.4.0

El fragmento de código de su widget de inicio no muestra errores relacionados con Firebase. Pero dado que actualizó las dependencias, los nombres utilizados en versiones anteriores pueden variar. Por ejemplo, UserAuth ahora es Usuario. Publique los errores que causan los widgets.

-Huthaifa Muayyad

28/03/2021 a las 10:49

@Huthaifa Muayyad agregado exitosamente siNecesitas, puedo agregar más, pero hay demasiados problemas en el código que coincide con estos

-Tomee

28 de marzo de 2021 a las 10:56



------------------------------------

Cambie a lo siguiente:

 class Home extends StatefulWidget {
  Home({required this.uid, Key key})* : super(key: key);
  final String uid;

  @override
  _HomeState createState() => _HomeState();
}

class User {
  final String? uid;
  final String name;
  final String email;
  final String city;

  User({required this.uid, required this.email, required this.city, required this.name});
}

Agregue la palabra clave requerida para marcar esos campos como requeridos o puede usar el tipo que acepta valores NULL ?, si los campos pueden ser NULL, por ejemplo:

class _ChatRoomState extends State<ChatRoom> {
  DatabaseMethods databaseMethods = new DatabaseMethods();
  Stream? chatRoomsStream;

Acerca de esto:

final User user = FirebaseAuth.instance.currentUser;

¿el método usuarioactual devuelve un valor de tipo Usuario? por lo tanto debes hacer lo siguiente:

final User? user = FirebaseAuth.instance.currentUser;

Puedes leer sobre la seguridad nula aquí:

https://dart.dev/null-safety/understanding-null-safety

7

Gracias @peter por tu solución, pero creo que está relacionada principalmente con 'importar 'paquete:cloud_firestore/cloud_firestore.dart'; importar 'paquete:firebase_auth/firebase_auth.dart';' ya que por alguna razón está hecho en azul y sus elementos cometen errores, así como los colores de la aplicación, están marcados como errores. También obtengo 'FlatButton' está en desuso y no debe utilizarse. Arruiné algo con las versiones y es terrible :(

-Tomee

28/03/2021 a las 13:08

1

¿No actualizaste Flutter? Desde que actualizó, consulte flutter.dev/docs/development/tools/sdk/release-notes/… y sí, el botón plano está en desuso, use TextButton api.flutter.dev/flutter/material/FlatButton-class.html

-Peter Haddad

28/03/2021 a las 13:09

Sí, no lo he actualizado porque funcionó de manera estable y no hubo problemas.para mi @peter

-Tomee

28/03/2021 a las 13:26

1

ejecuta flutter doctor en la terminal y dime qué obtienes

-Peter Haddad

28/03/2021 a las 13:27

1

Sí, estás usando flutter 2.0 que se lanzó a principios de este mes, por eso ves todos esos errores. revisa la ligracias que te proporcioné

-Peter Haddad

28/03/2021 a las 14:09



------------------------------------

Había decidido restaurar las versiones de Dart a una versión similar a la anterior, para que la aplicación pudiera funcionar. Un agradecimiento especial, Peter Haddad.

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare