我想弄清楚为什么我会收到这个错误
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......
那么错误从哪里开始???但这就是我认为也许有人知道什么是真正的错误