can I have some help regarding this error? Here is the attachment of the code and error issue
CodePudding user response:
Map<String, dynamic>?
is nullable, while Map<String, dynamic>
is not nullable, therefore the former is not a subtype of the latter and the error message is expected. You will need to make sure that either both are nullable or none of them are nullable.
CodePudding user response:
In your code snapshot.data.data
is actually a method thata you can call to get the data, that means, snapshot.data.data()
gives you Map<String, dynamic>?
, since it is possible to have a DocumentSnapshot
that doesn't exist and thus has no (data) fields.
This leads to having two types in play here:
Map<String, dynamic>
is a map of string keys and values of an unknown type.Map<String, dynamic>?
can either be a map or benull
, in yoursnapshot.data.data
.
You can't assign a value of the second type to a variable of the first type, as such a variable has no way to store the null
value.
So you must either make the variable nullable too, by making it of type Map<String, dynamic>?
, or (and usually better) you can assert in your code that the value is not null
before assigning it to the variable.
The latter would look something like:
if (snapshot.data.data != null) {
userProfile.setData(snapshot.data.data()!);
}