Есть ли способ получить все счета пользователей в firebase? (аутентифицируется через пароль, facebook, твиттер и т. д.). Всего было зарегистрировано всех пользователей социальной и электронной почты &.Firebase общий счет пользователя
ответ
Нет встроенного метода, чтобы получить общее количество пользователей.
Вы можете сохранить индекс userIds и потянуть их вниз и посчитать их. Однако это потребует загрузки всех данных для получения счета.
{
"userIds": {
"user_one": true,
"user_two": true,
"user_three": true
}
}
Затем при загрузке данных вы можете назвать snapshot.numChildren()
:
var ref = new Firebase('<my-firebase-app>/userIds');
ref.once('value', function(snap) {
console.log(snap.numChildren());
});
Если вы не хотите, чтобы загрузить данные, вы можете сохранить общее количество с помощью transactions.
var ref = new Firebase('<my-firebase-app>');
ref.createUser({ email: '', password: '', function() {
var userCountRef = ref.child('userCount');
userCountRef.transaction(function (current_value) {
// increment the user count by one
return (current_value || 0) + 1;
});
});
Тогда вы можете слушать для пользователей в режиме реального времени:
var ref = new Firebase('<my-firebase-app>/userCount');
ref.on('value', function(snap) {
console.log(snap.val());
});
Вот Javascript модуль для этой цели - https://gist.github.com/ajaxray/17d6ec5107d2f816cc8a284ce4d7242e
В одной строке, что она делает это -
Храните список (и количество) пользователей онлайн в веб-приложении Firebase - изолированными комнатами или глобальными LY
Для подсчета всех пользователей с помощью этого модуля -
firebase.initializeApp({...});
var onlineUsers = new Gathering(firebase.database());
gathering.join();
// Attach a callback function to track updates
// That function will be called (with the user count and array of users) every time user list updated
gathering.onUpdated(function(count, users) {
// Do whatever you want
});
Так ты говоришь, что я не могу полагаться на систему Идент пользователя firebase и я должен создать что-то, чтобы сохранить новые UserIds все время. Правильно ли я понимаю? –
Аутентификация пользователей Firebase выполняется только для аутентификации пользователей. Если вы хотите что-то сделать с этими данными, вы храните их в своей базе данных Firebase. –
ОК, справедливо. Я хотел бы иметь доступ, по крайней мере, ко всем идентификаторам пользователей или что-то в этом роде :) Я принимаю это как ответ –