Firebase 실시간 데이터베이스 : push (). set () 후 고유 키를 얻는 방법은 무엇입니까?
Nov 17 2020
내 flutter 코드에서 다음은 Firebase 실시간 데이터베이스에 데이터를 저장하기 위해 수행하는 작업입니다.
final DatabaseReference reference = FirebaseDatabase.instance.reference().child('chat_room');
void _sendMessage({String messageText, String imageUrl}) async{
await reference.push().set({
'text': messageText,
'imageUrl': imageUrl,
});
}
이것은 데이터베이스에 다음 결과를 생성합니다

데이터를 제출하자마자 생성 된 고유 키를 검색해야하는데 어떻게 할 수 있습니까?
답변
2 RenaudTarnec Nov 17 2020 at 15:21
이 push()메서드는를 반환 DatabaseReference하므로 다음과 같이 할 수 있습니다.
final DatabaseReference reference = FirebaseDatabase.instance.reference().child('chat_room');
void _sendMessage({String messageText, String imageUrl}) async {
DatabaseReference newRef = reference.push();
String newKey = newRef.key;
await newRef.set({
'text': messageText,
'imageUrl': imageUrl,
});
}
메서드를 DatabaseReference
호출 할 때 즉시 새 push()
메서드를 가져옵니다. 비동기 set()
메서드 호출 이 완료 될 때까지 기다릴 필요가 없습니다 .
1 Akif Nov 17 2020 at 15:23
다른 접근 방식으로 해당 ID를 얻을 수 있습니다. 먼저 다음 ID를 가져 와서 항목을 푸시 할 수 있습니다. 다음과 같이 표시됩니다.
final DatabaseReference reference = FirebaseDatabase.instance.reference().child('chat_room');
void _sendMessage({String messageText, String imageUrl}) async{
String newkey = reference.push().key; // That is your unique key!
await reference.child(newkey).set({
'text': messageText,
'imageUrl': imageUrl,
});
}