我完成了應用程式功能的設定,將基于文本的訊息保存到 RTDB(見下面的代碼)。我現在需要能夠將用戶錄制的語音記錄保存到 RTDB 中。這些錄音將與基于文本的訊息交織在一起(它是一個群聊應用程式),即用戶可以發送常規文本訊息或發送錄音。如何修改我的訊息模型 將記錄保存到 RTDB 的代碼來完成此操作?甚至可以將音頻檔案保存到 RTDB 中嗎?
訊息.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...
}
uj5u.com熱心網友回復:
Firebase 實時資料庫只能存盤 JSON 型別。在實時資料庫中存盤音頻檔案效率非常低,因為您需要將它們轉換為 JSON 型別(通常是 base64)。
我建議將檔案本身存盤在 Cloud Storage 中,為此還有一個 Firebase SDK,然后將對該檔案的參考(例如其下載 URL)存盤在實時資料庫中。
要了解更多資訊,請參閱有關上傳檔案和獲取下載 URL的檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/428764.html
標籤:安卓 火力基地 扑 镖 firebase-实时数据库
