Firebase 错误:flatter/lib/ui/ui#u dart_state.cc(177)未处理的异常:NoSuchMethodError:The method';插入';被调用为空
你好,我是一个入门的flutter开发人员,我想用我的CloudFireStore数据库中的数据做一个列表。我不知道该怎么做。如果您对我的代码有任何帮助或建议,我们将不胜感激Firebase 错误:flatter/lib/ui/ui#u dart_state.cc(177)未处理的异常:NoSuchMethodError:The method';插入';被调用为空,firebase,flutter,dart,google-cloud-firestore,flutter-dependencies,Firebase,Flutter,Dart,Google Cloud Firestore,Flutter Dependencies,你好,我是一个入门的flutter开发人员,我想用我的CloudFireStore数据库中的数据做一个列表。我不知道该怎么做。如果您对我的代码有任何帮助或建议,我们将不胜感激 import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:dinghy1/components/default_button.dart'; import 'package:dinghy1/services/reservations.dart
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:dinghy1/components/default_button.dart';
import 'package:dinghy1/services/reservations.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import '../../../constants.dart';
import '../../../size_config.dart';
class Body extends StatefulWidget {
@override
_BodyState createState() => _BodyState();
}
class _BodyState extends State<Body> {
static List<Map<String, dynamic>> reservations;
static Map<String, dynamic> documents;
static List<QueryDocumentSnapshot> documents2;
static int index;
bool visibility = false;
String rental = ReservationService.rental;
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: SafeArea(
child: Column(
children: [
SizedBox(
height: getPropotionateScreenWidth(20),
),
Padding(
padding: EdgeInsets.symmetric(
horizontal: getPropotionateScreenWidth(20)),
child: Container(
decoration: BoxDecoration(
color: kPrimaryColor.withOpacity(0.4),
borderRadius: BorderRadius.circular(30)),
height: getPropotionateScreenHeight(75),
width: double.infinity,
child: Center(
child: Text(
"Sprawdź rezerwacje",
style: TextStyle(
fontSize: getPropotionateScreenWidth(20),
fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
),
),
),
),
SizedBox(
height: getPropotionateScreenWidth(20),
),
DatePicker(),
SizedBox(
height: getPropotionateScreenWidth(20),
),
Padding(
padding: EdgeInsets.symmetric(
horizontal: getPropotionateScreenWidth(20)),
child: DefaultButton(
text: "Sprawdź",
press: () {
final FirebaseAuth auth = FirebaseAuth.instance;
final User user = auth.currentUser;
String uid = user.uid;
FirebaseFirestore.instance
.collection("users")
.doc(uid)
.get()
.then((DocumentSnapshot documentSnapshot) {
if (documentSnapshot.exists) {
rental = documentSnapshot['rental'].toString();
ReservationService()
.getReservations(
rental,
_DatePickerState.selectedDate
.toString()
.split(" ")[0])
.then((QuerySnapshot docs) {
if (docs.docs.isNotEmpty) {
int i = 0;
index = docs.size - 1;
print(index);
while (i <= index) {
documents = docs.docs[i].data();
if (documents != null) {
reservations.insert(i, documents);
i++;
print(documents);
}
}
}
});
}
});
setState(() {
RentCard.name = documents['name'];
visibility = true;
});
},
),
),
SizedBox(
height: getPropotionateScreenWidth(20),
),
visibility == true
? new Padding(
padding: EdgeInsets.symmetric(
horizontal: getPropotionateScreenWidth(20)),
child: Column(
children: [
// ...List.generate(
// documents2.length,
// (index) => RentCard(reservations: reservations[0]),
// ),
],
),
)
: new Text(
'Wybierz date i naciśnij przycisk aby sprawdzić rezerwacje!')
],
),
),
);
}
}
import'包:cloud_firestore/cloud_firestore.dart';
导入“package:dinghy1/components/default_button.dart”;
导入“套餐:dinghy1/services/reservations.dart”;
导入“包:firebase_auth/firebase_auth.dart”;
进口“包装:颤振/材料.省道”;
导入“package:flatter_svg/flatter_svg.dart”;
导入“../../../constants.dart”;
导入“../../size_config.dart”;
类主体扩展了StatefulWidget{
@凌驾
_BodyState createState();
}
类_BodyState扩展了状态{
静态列表保留;
静态地图文档;
静态列表文档2;
静态整数指数;
布尔可见性=假;
字符串出租=ReservationService.rental;
@凌驾
小部件构建(构建上下文){
返回SingleChildScrollView(
儿童:安全区(
子:列(
儿童:[
大小盒子(
高度:getPropotionateScreenWidth(20),
),
填充物(
填充:EdgeInsets.symmetric(
水平:getPropotionateScreenWidth(20)),
子:容器(
装饰:盒子装饰(
颜色:kPrimaryColor。不透明度(0.4),
边界半径:边界半径。圆形(30)),
高度:GetPromotionScreenHeight(75),
宽度:double.infinity,
儿童:中心(
子:文本(
“Sprawdźrezerwacje”,
样式:TextStyle(
fontSize:getPropotionateScreenWidth(20),
fontWeight:fontWeight.bold),
textAlign:textAlign.center,
),
),
),
),
大小盒子(
高度:getPropotionateScreenWidth(20),
),
日期选择器(),
大小盒子(
高度:getPropotionateScreenWidth(20),
),
填充物(
填充:EdgeInsets.symmetric(
水平:getPropotionateScreenWidth(20)),
子:默认按钮(
文本:“Sprawdź”,
新闻界:(){
final FirebaseAuth auth=FirebaseAuth.instance;
最终用户=auth.currentUser;
字符串uid=user.uid;
FirebaseFirestore.instance
.收集(“用户”)
.doc(uid)
.get()
.然后((文档快照文档快照){
if(documentSnapshot.exists){
rental=documentSnapshot['rental'].toString();
ReservationService()
.GetReserves(
租金
_DatePickerState.selectedDate
.toString()
.split(“”[0])
.然后((QuerySnapshot文档){
if(docs.docs.isNotEmpty){
int i=0;
index=docs.size-1;
打印(索引);
而(i)租赁卡(预订:预订[0]),
// ),
],
),
)
:新文本(
“Wybierz date i naciśnij przycisk aby sprawdzićrezerwacje!”)
],
),
),
);
}
}
下面是出错的代码示例
E/flutter ( 5082): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The method 'insert' was called on null.
E/flutter ( 5082): Receiver: null
E/flutter ( 5082): Tried calling: insert(0, _LinkedHashMap len:7)
E/flutter ( 5082): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
E/flutter ( 5082): #1 _BodyState.build.<anonymous closure>.<anonymous closure>.<anonymous closure>
package:dinghy1/…/components/body.dart:89
E/flutter ( 5082): #2 _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter ( 5082): #3 _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 5082): #4 _FutureListener.handleValue (dart:async/future_impl.dart:143:18)
E/flutter ( 5082): #5 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696:45)
E/flutter ( 5082): #6 Future._propagateToListeners (dart:async/future_impl.dart:725:32)
E/flutter ( 5082): #7 Future._completeWithValue (dart:async/future_impl.dart:529:5)
E/flutter ( 5082): #8 _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:40:15)
E/flutter ( 5082): #9 _completeOnAsyncReturn (dart:async-patch/async_patch.dart:311:13)
E/flutter ( 5082): #10 Query.get (package:cloud_firestore/src/query.dart)
package:cloud_firestore/src/query.dart:1
E/flutter ( 5082): <asynchronous suspension>
E/flutter ( 5082): #11 ReservationService.getReservations
package:dinghy1/services/reservations.dart:19
E/flutter ( 5082): #12 _BodyState.build.<anonymous closure>.<anonymous closure>
package:dinghy1/…/components/body.dart:76
E/flutter ( 5082): #13 _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter ( 5082): #14 _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 5082): #15 _FutureListener.handleValue (dart:async/future_impl.dart:143:18)
E/flutter ( 5082): #16 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696:45)
E/flutter ( 5082): #17 Future._propagateToListeners (dart:async/future_impl.dart:725:32)
E/flutter ( 5082): #18 Future._completeWithValue (dart:async/future_impl.dart:529:5)
E/flutter ( 5082): #19 _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:40:15)
E/flutter ( 5082): #20 _completeOnAsyncReturn (dart:async-patch/async_patch.dart:311:13)
E/flutter ( 5082): #21 DocumentReference.get (package:cloud_firestore/src/document_reference.dart)
package:cloud_firestore/src/document_reference.dart:1
E/flutter ( 5082): <asynchronous suspension>
E/flutter ( 5082): #22 _BodyState.build.<anonymous closure>
package:dinghy1/…/components/body.dart:71
E/flutter ( 5082): #23 _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:993
E/flutter ( 5082): #24 _InkResponseState.build.<anonymous closure>
package:flutter/…/material/ink_well.dart:1111
E/flutter ( 5082): #25 GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:183
E/flutter ( 5082): #26 TapGestureRecognizer.handleTapUp
package:flutter/…/gestures/tap.dart:598
E/flutter ( 5082): #27 BaseTapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:287
E/flutter ( 5082): #28 BaseTapGestureRecognizer.handlePrimaryPointer
package:flutter/…/gestures/tap.dart:222
E/flutter ( 5082): #29 PrimaryPointerGestureRecognizer.handleEvent
package:flutter/…/gestures/recognizer.dart:476
E/flutter ( 5082): #34 PointerRouter.route
package:flutter/…/gestures/pointer_router.dart:106
E/flutter ( 5082): #35 GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:358
E/flutter ( 5082): #36 GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:338
E/flutter ( 5082): #37 RendererBinding.dispatchEvent
package:flutter/…/rendering/binding.dart:267
E/flutter ( 5082): #38 GestureBinding._handlePointerEvent
package:flutter/…/gestures/binding.dart:295
E/flutter ( 5082): #39 GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:240
E/flutter ( 5082): #40 GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:213
E/flutter ( 5082): #41 _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter ( 5082): #42 _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 5082): #43 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter ( 5082): #44 _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter ( 5082): #45 _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)
E/flutter ( 5082):
E/flatter(5082):[ERROR:flatter/lib/ui/ui\u dart\u state.cc(177)]未处理的异常:NoSuchMethodError:对null调用了方法“insert”。
E/颤振(5082):接收器:空
E/flatter(5082):尝试呼叫:插入(0,_linkedhashmaplen:7)
E/颤振(5082):#0 Object.noSuchMethod(dart:core patch/Object_patch.dart:51:5)
E/颤振(5082):#1#身体状态。构建。。。
包装:鼎海1/../components/body.省道:89
E/flatter(5082):#2 rootrunnary(dart:async/zone.dart:1198:47)
E/flatter(5082):#3_CustomZone.runUnary(dart:async/zone.dart:1100:19)
E/flatter(5082):#4 FutureListener.handleValue(dart:async/future_impl.dart:143:18)
E/flatter(5082):#5 Future._-propagateToListeners.handleValueCallback(dart:async/Future_-impl.dart:696:45)
E/flatter(5082):#6未来。"传播给监听器(dart:async/Future\u impl.dart:725:32)
E/颤振(5082):#7未来。_完成值(dart:async/Future\u impl.dart:529:5)
E/flatter(5082):#8 AsyncAwaitCompleter.complete(dart:async patch/async patch.dart:40:15)
E/颤振(5082):#9完成同步返回(dart:async patch/async patch.dart:311:13)
E/flatter(5082):#10 Query.get(包:cloud_firestore/src/Query.dart)
包:cloud\u firestore/src/query.dart:1
E/颤振(5082):
E/flatter(5082):#11 ReservationService.getReservations
套餐:鼎海1号/服务/预订。dart:19
E/颤振(5082):#12#身体状态。构建。。
包装:鼎海1/../components/body.省道:76
E/颤振(5082):#13 35;根运行单位(dart:async/zone.dart:1198:47)
E/flatter(5082):#14 _CustomZone.runUnary(dart:async/zone.dart:1100:19)
E/flatter(5082):#15 FutureListener.handleValue(dart:async/future_impl.dart:143:18)
E/flatter(5082):#16 Future._propagateToListeners.handleValueCallback(dart:async/Future_impl.dart:696:45)
E/flatter(5082):#17未来。(dart:async/Future_impl.dart:725:32)
E/颤振(5082):#18未来。_完成值(dart:async/Future\u impl.dart:529:5)
E/颤振(5082):#19#完成器.compl
static List<Map<String, dynamic>> reservations = [];
static Map<String, dynamic> documents = {};
List<QueryDocumentSnapshot> documents2 = [];