Я обновляю свой проект с помощью firestore, и я впервые сталкиваюсь с таким типом ошибки. Это очень странно для меня, я использую firestore, как сказано в документации, и в других частях моего приложения Firestore не было ошибок, но в этой части я использую облачные функции для создания документа и вставки его ссылки в другое. После того, как мне нужно получить DocumentId, но он сказал мне, что эта ошибка "тип 'MethodChannelDocumentReference' не является подтипом типа 'DocumentReference' в приведении типа" Я оставляю несколько снимков экрана.
coupon=>reference as reference">
Это мой код в облачных функциях:
exports.generateUserCode = functions.https.onCall(async (data, context) => {
const { uid } = data;
let coupon = shortid.generate();
let user = firestore.doc(`users/${uid}`);
try {
await firestore
.collection("coupons")
.doc(coupon)
.set({
owner: user,
type: 0,
value: 10,
isPercentage: false,
usersUsedIt: 0
});
await user.update({
coupon: {
reference: firestore.doc(`coupons/${coupon}`),
uses: 0
}
});
return {
status: true,
message: "codigo de invitacion generado",
code: coupon
};
} catch (e) {
console.log("error", e);
return {
status: false,
message: "algo salio mal",
code: null
};
}
});
Это код флаттера:
@override
Future<UserModel> getUser() async {
try {
final authUser = await _auth.currentUser();
if (authUser != null) {
final user = await _firestore.document('users/${authUser.uid}').get();
if (!user.data.containsKey('coupon') || user.data['coupon'] == null) {
final couponCode = await _generateCode(authUser.uid);
return UserModel.fromData(authUser, couponCode);
} else {
final coupon = Map<String, dynamic>.from(user.data['coupon']);
final couponRef = coupon['reference'] as DocumentReference;
return UserModel.fromData(authUser, couponRef.documentID);
}
}
return null;
} catch (e) {
log(e.toString(), error: e);
throw ServerException();
}
}
И это появляется, когда я пытаюсь отладить код:
type 'MethodChannelDocumentReference' is not a subtype of type 'DocumentReference' in type cast