0

なぜこのエラーが発生するのかを理解しようとしています

VERBOSE-2:ui_dart_state.cc(186)] Unhandled Exception: 'package:cloud_firestore/src/collection_reference.dart': Failed assertion: line 60 pos 14: '!path.contains('//')': a document path must not contain "//"
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2      CollectionReference.doc
package:cloud_firestore/src/collection_reference.dart:60
#3      _VideopageofcurrentuserState.likevideo (package:wichtigdenyady/taking%20videos/currentuservideos.dart:50:63)
#4      _VideopageofcurrentuserState._buildBody.<anonymous closure>.<anonymous closure> (package:wichtigdenyady/taking%20videos/currentuservideos.dart:417:24)
#5      _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:991
#6      GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:182
#7      TapGestureRecognizer.handleTapUp
package:flutter/…/gestures/tap.dart:607
#8      BaseTapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:296
#9      BaseTapGestureRecognizer.acceptGesture
package:flutter/…/gestures/tap.dart:267
#10     GestureArenaManager.sweep
package:flutter/…/gestures/arena.dart:157
#11     GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:385
#12     GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:361
#13     RendererBinding.dispatchEvent
package:flutter/…/rendering/binding.dart:278
#14     GestureBinding._handlePointerEventImmediately
package:flutter/…/gestures/binding.dart:316
#15     GestureBinding.handlePointerEvent
package:flutter/…/gestures/binding.dart:280
#16     GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:238
#17     GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:221
#18     _rootRunUnary (dart:async/zone.dart:1370:13)
#19     _CustomZone.runUnary (dart:async/zone.dart:1265:19)
#20     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
#21     _invoke1 (dart:ui/hooks.dart:180:10)
#22     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:276:7)
#23     _dispatchPointerDataPacket (dart:ui/hooks.dart:96:31)

私がすることはこれです:最初にメソッドにいくつかのデータを与えます

buildBody(videos.data()['likes'],videos.data()['videourl'])

そして、これを行うメソッド内で

  Widget _buildBody( videoid,video) {
   

    return Container(
      - - - -
Stack(
                children: [
                  Padding(
                    padding: const EdgeInsets.fromLTRB(3, 7, 0, 0),
                    child: Align(
                      alignment: Alignment.topLeft,
                      child: RatingBarIndicator(
                        rating: _userRating,
                        itemBuilder: (context, index) => InkWell(
                          onTap: () {
                            setState(() {
                              _userRating = index + 1.toDouble();
                            });
                            print(index + 1.toDouble());
                            print(video);
                            likevideo(video, _userRating);
                          },
                          child: Icon(
                            Icons.star,
                            color: Colors.amber,
                          ),
 ---

そのため、評価バーをタップして、そのように見えるビデオのようなメソッドを呼び出しています

 likevideo(String id, double _rating) async {
    String uid = FirebaseAuth.instance.currentUser.uid;
    DocumentSnapshot doc =
        await FirebaseFirestore.instance.collection('videos').doc(id).get();
    if (!doc.data()['likes'].contains(uid)) {
      FirebaseFirestore.instance.collection('videos').doc(id).update({
        'likes': FieldValue.arrayUnion([uid]),
      });

      FirebaseFirestore.instance
          .collection('videos')
          .doc(id)
          .collection("uservotes")
          .doc(uid)
          .set({'videoid': id, 'rating': _rating, 'uid': uid});
    }
  }

ここでは、ユーザー uid の現在の uid を配列に保存し、id、_rating、および uid をサブコレクションに保存しています。エラーの意味はわかりませんが、パスがこの値であることを意味していると思います

videos.data()['videourl']

空ですが、印刷するときはそうではありません

flutter: https://firebasestorage.googleapis.com/v0/b/wichtigdenyag.appspot.com/o/allvideos%2F269700204266546905SaQFz?alt=med......

では、エラーはどこから発生したのでしょうか??? しかし、それはおそらく誰かが本当に間違っていることを知っていると思います

4

1 に答える 1