【发布时间】:2022-02-19 12:22:03
【问题描述】:
我完成了应用程序功能的设置,将基于文本的消息保存到 RTDB(参见下面的代码)。我现在需要能够将用户录制的语音记录保存到 RTDB 中。这些录音将与基于文本的消息交织在一起(它是一个群聊应用程序),即用户可以发送常规文本消息或发送语音记录。如何修改我的消息模型 + 将记录保存到 RTDB 的代码来完成此操作?甚至可以将音频文件保存到 RTDB 中吗?
message.dart
class Message { //text messages only
final String uid;
final String text;
final DateTime timestamp;
final String type;
Message({
required this.uid,
required this.text,
required this.timestamp,
required this.type,
});
Message.fromJson(Map<dynamic, dynamic>? json): //Transform JSON into Message
uid = json?['uid'] as String,
text = json?['text'] as String,
timestamp = DateTime.parse(json?['timestamp'] as String),
type = json?['type'] as String;
Map<dynamic, dynamic> toJson() => <dynamic, dynamic>{ //Transforms Message into JSON
'uid': uid,
'text': text,
'timestamp': timestamp.toString(),
'type': type,
};
}
message_dao.dart
class MessageDao {
MessageDao({required this.groupIDPath}): _messagesRef = FirebaseDatabase.instance.reference().child(groupIDPath);
String groupIDPath;
DatabaseReference _messagesRef;
//Save a single message to the appropriate node based on groupIDPath
void saveMessage(Message message) {
_messagesRef.push().set(message.toJson());
}
rest of code...
}
【问题讨论】:
标签: android firebase flutter dart firebase-realtime-database