Anonymous
Чтение данных из Firebase RTDB с использованием Flutter ведет себя по-разному на Android и iOS.
Сообщение
Anonymous » 23 янв 2026, 19:09
Я обнаружил, что следующий вызов ведет себя по-разному при выполнении для iOS и Android.
В Android следующий вызов .get() возвращает ожидаемый снимок из пути ChatRoomID. Однако в iOS .get() в конечном итоге возвращает снимок всего узла под myUser.userID.
Похоже, что для iOS путь ко второму дочернему узлу игнорируется...
Код: Выделить всё
DataSnapshot snapshot = await chatsRef
.child(myUser.userID!)
.child(chatRoomID)
.get();
print(snapshot.value);
JSON:
Код: Выделить всё
{
"chats" : {
"oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : {
"c00dca80-9077-11ec-855a-910961fc4253" : {
"chatAdmin" : "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1",
"chatImage" : "https://images.pexels.com/photos/887827/pexels-photo-887827.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
"chatName" : "chef",
"chatRoomID" : "c00dca80-9077-11ec-855a-910961fc4253",
"isActivityChat" : false,
"isGroupChat" : true,
"lastMessage" : {
"lastMessage" : "Hey",
"lastMessageTime" : "2022-02-18 00:00:56.992308",
"messageID" : "-MwAC5BUz3GKPmkA1SSQ",
"nKDsrLrcU0PgtEDV5tKpMumSDuu1" : "true",
"oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : "false",
"psJQRp96VGWIjTDpNpMUShPNWa82" : "true",
"sendBy" : "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1",
"senderName" : "Emily"
},
"muted" : {
"nKDsrLrcU0PgtEDV5tKpMumSDuu1" : false,
"oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : false,
"psJQRp96VGWIjTDpNpMUShPNWa82" : false
},
"users" : {
"nKDsrLrcU0PgtEDV5tKpMumSDuu1" : true,
"oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : true,
"psJQRp96VGWIjTDpNpMUShPNWa82" : true
}
},
"nKDsrLrcU0PgtEDV5tKpMumSDuu1_oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : {
"chatRoomID" : "nKDsrLrcU0PgtEDV5tKpMumSDuu1_oF1b6J4Hz3NGzRb9RmSVFGJdcYi1",
"isActivityChat" : false,
"isGroupChat" : false,
"lastMessage" : {
"lastMessage" : "Shut",
"lastMessageTime" : "2022-02-18 00:01:30.161511",
"messageID" : "-MwACDHlTWpQhhQFh9k8",
"nKDsrLrcU0PgtEDV5tKpMumSDuu1" : "true",
"oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : "false",
"sendBy" : "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1",
"senderName" : "Emily"
},
"muted" : {
"nKDsrLrcU0PgtEDV5tKpMumSDuu1" : false,
"oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : false
},
"users" : {
"nKDsrLrcU0PgtEDV5tKpMumSDuu1" : true,
"oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : true
}
}
}
},
}
Подробнее здесь:
https://stackoverflow.com/questions/711 ... on-android
1769184552
Anonymous
Я обнаружил, что следующий вызов ведет себя по-разному при выполнении для iOS и Android. В Android следующий вызов .get() возвращает ожидаемый снимок из пути ChatRoomID. Однако в iOS .get() в конечном итоге возвращает снимок всего узла под myUser.userID. Похоже, что для iOS путь ко второму дочернему узлу игнорируется... [code]DataSnapshot snapshot = await chatsRef .child(myUser.userID!) .child(chatRoomID) .get(); print(snapshot.value); [/code] JSON: [code]{ "chats" : { "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : { "c00dca80-9077-11ec-855a-910961fc4253" : { "chatAdmin" : "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1", "chatImage" : "https://images.pexels.com/photos/887827/pexels-photo-887827.jpeg?auto=compress&cs=tinysrgb&h=650&w=940", "chatName" : "chef", "chatRoomID" : "c00dca80-9077-11ec-855a-910961fc4253", "isActivityChat" : false, "isGroupChat" : true, "lastMessage" : { "lastMessage" : "Hey", "lastMessageTime" : "2022-02-18 00:00:56.992308", "messageID" : "-MwAC5BUz3GKPmkA1SSQ", "nKDsrLrcU0PgtEDV5tKpMumSDuu1" : "true", "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : "false", "psJQRp96VGWIjTDpNpMUShPNWa82" : "true", "sendBy" : "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1", "senderName" : "Emily" }, "muted" : { "nKDsrLrcU0PgtEDV5tKpMumSDuu1" : false, "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : false, "psJQRp96VGWIjTDpNpMUShPNWa82" : false }, "users" : { "nKDsrLrcU0PgtEDV5tKpMumSDuu1" : true, "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : true, "psJQRp96VGWIjTDpNpMUShPNWa82" : true } }, "nKDsrLrcU0PgtEDV5tKpMumSDuu1_oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : { "chatRoomID" : "nKDsrLrcU0PgtEDV5tKpMumSDuu1_oF1b6J4Hz3NGzRb9RmSVFGJdcYi1", "isActivityChat" : false, "isGroupChat" : false, "lastMessage" : { "lastMessage" : "Shut", "lastMessageTime" : "2022-02-18 00:01:30.161511", "messageID" : "-MwACDHlTWpQhhQFh9k8", "nKDsrLrcU0PgtEDV5tKpMumSDuu1" : "true", "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : "false", "sendBy" : "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1", "senderName" : "Emily" }, "muted" : { "nKDsrLrcU0PgtEDV5tKpMumSDuu1" : false, "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : false }, "users" : { "nKDsrLrcU0PgtEDV5tKpMumSDuu1" : true, "oF1b6J4Hz3NGzRb9RmSVFGJdcYi1" : true } } } }, } [/code] [img]https://i.sstatic.net/rz9yg.jpg[/img] Подробнее здесь: [url]https://stackoverflow.com/questions/71163140/reading-data-from-firebase-rtdb-using-flutter-has-different-behavior-on-android[/url]