Тип «MethodChannelDocumentReference» не является подтипом типа «DocumentReference» в приведении типа - PullRequest
0 голосов
/ 15 февраля 2020

Я обновляю свой проект с помощью firestore, и я впервые сталкиваюсь с таким типом ошибки. Это очень странно для меня, я использую firestore, как сказано в документации, и в других частях моего приложения Firestore не было ошибок, но в этой части я использую облачные функции для создания документа и вставки его ссылки в другое. После того, как мне нужно получить DocumentId, но он сказал мне, что эта ошибка "тип 'MethodChannelDocumentReference' не является подтипом типа 'DocumentReference' в приведении типа" Я оставляю несколько снимков экрана.

imagecoupon=>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

MethodChannelDocumentReference

1 Ответ

0 голосов
/ 15 февраля 2020

есть решение спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...