Я делаю проект для своего курса в колледже с помощью firebase и flutter. при регистрации выдает ошибку
внешний статический Never _throw(ошибка объекта, StackTrace stackTrace);
и показывает
Класс дескриптора локального модуля для com.google.android.gms.providerinstaller.dynamite не найден. ошибка.
это скриншот меню отладки
user_model.dart
import 'dart:convert';
List<UserModel> userModelFromJson(String str) =>
List<UserModel>.from(json.decode(str).map((x) => UserModel.fromJson(x)));
String userModelToJson(List<UserModel> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class UserModel {
UserModel({
this.id,
required this.name,
required this.email,
required this.phoneNumber,
required this.password,
required this.category,
});
final String? id;
final String name;
final String email;
final String phoneNumber;
final String password;
final String category;
factory UserModel.fromJson(Map<String, dynamic> json) => UserModel(
name: json["name"],
email: json["email"],
phoneNumber: json["phone number"],
password: json["password"],
category: json["category"],
);
Map<String, dynamic> toJson() => {
"name": name,
"email": email,
"phone number": phoneNumber,
"password": password,
"category": category,
};
}
user_repository.dart
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:rentease/SignUp/Model/user_model.dart';
class UserRepository extends GetxController {
static UserRepository get instance => Get.find();
final _db = FirebaseFirestore.instance;
createUser(UserModel user) async {
try {
await _db.collection("Users").add(user.toJson());
Get.snackbar("Success", "Your Account has been created",
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Colors.green,
colorText: Colors.white);
} catch (error) {
Get.snackbar("Error", "Something went wrong",
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Colors.red,
colorText: Colors.white);
// Return a value that is assignable to DocumentReference<Map<String, dynamic>>
return _db.collection("Users").doc();
}
}
}
Я попытался обновить зависимость cloud_firestore до последней версии, переключаясь между несколькими AVD, пытался подключить реальное устройство Android, но все равно получал те же ошибки. я все еще могу отправлять данные в firestore с этими ошибками.
также попробовал этот код, прежде чем переключиться на попытку в user_repository.dart
createUser(UserModel user) async {
await _db
.collection("Users")
.add(user.toJson())
.whenComplete(
() => Get.snackbar("Success", "Your Account has been created",
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Colors.green,
colorText: Colors.white),
)
.catchError((error) {
Get.snackbar("Error", "Something went wrong",
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Colors.red,
colorText: Colors.white);
});
}
@jamesdlin я добавил скриншот меню отладки в сообщение. можешь проверить?
Ваше сообщение об ошибке указывает на то, что код пытался использовать оператор нулевого утверждения (постфикс !
) в null
. Вы проверили указанный номер строки (snackbar_controller.dart
, строка 91), чтобы увидеть, что вызвало это? Работайте в обратном направлении оттуда.
@jamesdlin исправил это. просто нужно было добавить GetMaterialApp вместо MaterialApp. Спасибо. <3
починил это. просто нужно было добавить GetMaterialApp вместо MaterialApp
Never _throw(Object error, StackTrace stackTrace);
не интересно. Это функция, которая выдает исключение. Вам нужно проверить трассировку стека, чтобы определить, что вызывает эту функцию и почему.