【发布时间】:2023-03-24 14:37:01
【问题描述】:
手机访问record_patien时出现红屏
这是代码
import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/material.dart';
import 'package:sensor_detak_jantung/models/sensor.dart';
import 'package:sensor_detak_jantung/models/user.dart';
import 'package:sensor_detak_jantung/screens/authenticate/sign_in.dart';
import 'package:firebase_auth/firebase_auth.dart' as firebase_auth;
import 'package:sensor_detak_jantung/services/db_path.dart';
class RecordPatient extends StatefulWidget {
const RecordPatient({Key key}) : super(key: key);
@override
_RecordPatient createState() => _RecordPatient();
}
class _RecordPatient extends State<RecordPatient> {
final databaseReference = FirebaseDatabase.instance.reference();
final _auth = firebase_auth.FirebaseAuth.instance;
final TextEditingController tokenController = TextEditingController();
User userInfo;
firebase_auth.User _user;
Sensor sensorInfo;
final _formKey = GlobalKey<FormState>();
String bpm;
void initState(){
super.initState();
this._user = _auth.currentUser;
if(_user != null) {
这是我尝试获取 BPM 值的地方
databaseReference.child('Sensor').once().then((DataSnapshot snapshot) {
bpm = snapshot.value['BPM']['Data'];
});
这是给用户的,这段代码在其他类上运行流畅。
databaseReference.child(USER_KEY).child(_user.uid).once().then((snapshot) {
userInfo = User.fromSnapshot(snapshot);
setState(() { });
});
}
}
AppBar title(){
return AppBar(
backgroundColor: Colors.red[400],
elevation: 0.0,
title: Text('Hi ${userInfo?.userName}'),
actions: <Widget>[
FlatButton.icon(
icon: Icon(Icons.person),
label: Text('logout'),
onPressed: () async {
_auth.signOut().then((value) {
Navigator.pushReplacement(context, new MaterialPageRoute(builder: (context) => SignIn()));
setState(() {});
});
},
),
],
);
}
@override
Widget build(BuildContext context) {
print (bpm);
return Scaffold(
body: Form(
key: _formKey,
child: ListView(
padding: const EdgeInsets.fromLTRB(22.0, 0.0, 22.0, 22.0),
children: [
SizedBox(height: 40),
title(),
SizedBox(height: 40),
Text (bpm),
],
),
),
);
}
}
当我尝试获取 Sensor 值和 users 值时会发生这种情况。
我仍在学习和试验,如果有人可以解释为什么这个错误会以简单的方式发生,非常感谢。
【问题讨论】: