Ограничение - это не столько Firebase, сколько реальность пропускной способности устройства и экономичность чтения данных.
Главное, что нужно понять, это то, что numChildren()
- это операция на стороне клиента, которая считает число дочерних узлов в DataSnapshot
.
Если я правильно помню, узел followers
FriendlyPix имеет такую структуру:
"followers": {
"uidOfUser1ButThenOfALength": true,
"uidOfUser2ButThenOfALength": true,
"uidOfUser3ButThenOfALength": true,
"uidOfUser4ButThenOfALength": true
}
Если вы загружаете эту структуру, вы читаете около 150 байт. Ничего страшного, но если вам нужно только количество детей, вы также можете получить такой результат, прочитав такую структуру:
"followerCount": 4
И это всего лишь 20 байтов, что сэкономит пользователю 130 полосы пропускания. и вы получите 130 счетов за чтение для каждого пользователя.
По мере того, как ваше приложение приобретает больше пользователей, и каждый пользователь, вероятно, получает больше последователей, эти цифры начинают складываться. При среднем числе 20 подписчиков чтение всех данных для вызова numChildren()
на стороне клиента занимает 672 байта, тогда как чтение счетчика займет всего 21 байт.