【发布时间】:2020-12-18 06:24:21
【问题描述】:
编辑:- 实际上我通过将 !snapshot.data.documents.isEmpty 更改为 snapshot.data.data() != null 解决了这个问题 我发现当我尝试使用新文档将我的项目迁移到 FlutterFire 时,有些东西没有显示错误,但它们也不起作用。但在阅读文档后,我能够解决所有问题。
════════小部件库捕获的异常═════════════════════════════════════ ═
在构建 StreamBuilder(dirty, state: _StreamBuilderBaseState
它在此文件的调试控制台中显示错误,它曾经可以工作,我没有更改任何内容,但它在 streambuilder 中显示 nosuchmethoderror
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:skype_clone/models/call.dart';
import 'package:skype_clone/provider/user_provider.dart';
import 'package:skype_clone/resources/call_methods.dart';
import 'package:skype_clone/screens/callscreens/pickup/pickup_screen.dart';
class PickupLayout extends StatelessWidget {
final Widget scaffold;
final CallMethods callMethods = CallMethods();
PickupLayout({
@required this.scaffold,
});
@override
Widget build(BuildContext context) {
final UserProvider userProvider = Provider.of<UserProvider>(context);
return (userProvider != null && userProvider.getUser != null)
? StreamBuilder<DocumentSnapshot>(
stream: callMethods.callStream(uid: userProvider.getUser.uid),
builder: (context, snapshot) {
if (snapshot.hasData && snapshot.data.data != null) {
Call call = Call.fromMap(snapshot.data.data());
if (!call.hasDialled) {
return PickupScreen(call: call);
}
}
return scaffold;
},
)
: Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
);
}
}
【问题讨论】:
标签: flutter