Моя цель - запустить функцию дешифрования данных из базы данных до их отображения пользователю.
Вот схема базы данных
Вот виджет, отображающий данные:
Widget buildPatientCard(BuildContext context, DocumentSnapshot document) {
final patient = Patient.fromSnapshot(document);
return new Container(
child: Card(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.only(top: 8.0, bottom: 4.0),
child: Row(children: <Widget>[
Text(patient.name,
style: new TextStyle(
fontSize: 24.0, fontWeight: FontWeight.bold)),
Spacer(),
Text(patient.gender,
style: new TextStyle(
fontSize: 20.0, fontWeight: FontWeight.bold)),
Text(", ",
style: new TextStyle(
fontSize: 20.0, fontWeight: FontWeight.bold)),
Text(patient.age,
style: new TextStyle(
fontSize: 20.0, fontWeight: FontWeight.bold))
]),
),
Padding(
padding: const EdgeInsets.only(top: 4.0, bottom: 80.0),
child: Row(children: <Widget>[
Text(patient.dob,
style: new TextStyle(
fontSize: 16.0, fontWeight: FontWeight.bold)),
Spacer(),
]),
),
Row(
children: <Widget>[
Text(
patient.notes,
style: new TextStyle(fontSize: 16.0),
),
Spacer(),
Icon(Icons.person),
Вот модель пациента:
Patient.fromSnapshot(DocumentSnapshot snapshot):
patientId = snapshot.documentID,
name = snapshot['Patient name'],
gender = snapshot['Gender'],
age = snapshot['Age'],
dob = snapshot['Date of Birth'],
notes = snapshot['Notes'];
Вот функция дешифрования, которую я хочу запустить для каждого из снимков данных перед их отображением:
_decrypt() async {
var userKey = await getUserKey();
final decryptedText =
await FlutterAesEcbPkcs5.decryptString(DATA FROM FIREBASE HERE, userKey);
return decryptedText;
}