flutter中实时数据库项目(firebase)的日志记录中途停止



我想让我的flutter应用程序读取firebase中的实时数据库项目,但我的控制台开始打印条目,并突然停止在中间(有30多个条目要打印(。以下是我的dart文件和控制台上的输出:

// single_page.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:firebase_database/firebase_database.dart';

class SinglePageApp extends StatefulWidget {
const SinglePageApp({Key? key}) : super(key: key);
@override
_SinglePageAppState createState() => _SinglePageAppState();
}
class _SinglePageAppState extends State<SinglePageApp> {
DatabaseReference _databaseReference = FirebaseDatabase.instance.reference();

void printResults() {
_databaseReference.once().then((DataSnapshot snapshot) {
print('Data : ${snapshot.value}');
});
}
@override
Widget build(BuildContext context) {
printResults();
return Container();
}
}
// main.dart
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import './single_page.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized(); // modified
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: SinglePageApp(),
);
}
}
Performing hot reload...
Syncing files to device sdk gphone x86...
Reloaded 0 libraries in 131ms.
I/chatty  (11266): uid=10154(com.example.firebasetest) 1.ui identical 1 line
I/flutter (11266): Data : {global: 1624522599522, readings: {-Mcx9YIBFKDmt2SG3zgs: {Temperature: 21, Humidity: 38}, -Mcx6NY-dij-Hrpzlxx5: {Temperature: 22, Humidity: 39}, -Mcx7RVECF5_Phy-HW4u: {Temperature: 22, Humidity: 38}, -Mcx5fF5e5Sv8qt7RwnN: {Temperature: 22, Humidity: 39}, -Mcx612cV63T02_kU2k1: {Temperature: 22, Humidity: 39}, -Mcx8-SsUNEXKDr9JwX8: {Temperature: 22, Humidity: 38}, -Mcx8TvgbNRO_Im5BEIv: {Temperature: 22, Humidity: 38}, -Mcx6yF5lxBhJwI_oR0n: {Temperature: 22, Humidity: 38}, -Mcx94EY0H7PhHsaihfd: {Temperature: 22, Humidity: 38}, -Mcx6jFx5A8RpiwslDyN: {Temperature: 22, Humidity: 39}, -Mcx8aOzK88q4x_HBeFw: {Temperature: 22, Humidity: 38}, -Mcx6VFGyad1i8KO1hLG: {Temperature: 22, Humidity: 39}, -Mcx7swFLs5QG1lM2nrA: {Temperature: 22, Humidity: 39}, -McxA0fRceADOuDCDX5I: {Temperature: 21, Humidity: 38}, -Mcx5RF48_PaUjkxVvgH: {Temperature: 22, Humidity: 39}, -Mcx7CTfM2Q0mTCxykCj: {Temperature: 22, Humidity: 39}, -Mcx6G1t_8m9gU1VI7Vf: {Temperature: 22, Humidity: 39}, -Mcx6bj61JAi_vWL25Hl: {Temperature: 22, Humidi

使用

debugPrint('Data : ${snapshot.value}')

而不是

print('Data :${snapshot.value}');

在CCD_ 1方法中。

以下是来自https://flutter.dev/docs/testing/code-debugging#logging:

如果你一次输出太多,那么Android有时会丢弃一些日志行。为了避免这种情况,请使用Flutter基金会的debugPrint((图书馆这是一个围绕打印的包装器,它将输出限制为避免被Android内核丢弃的级别。