2

Existe-t-il un moyen d'obtenir le nombre total d'utilisateurs dans Firebase? (authentifié par mot de passe, facebook, twitter, etc.) Total de tous les utilisateurs & sociaux et email authentifiés par mot de passe.Nombre total d'utilisateurs Firebase

Répondre

6

Il n'y a pas de méthode intégrée pour obtenir le nombre total d'utilisateurs.

Vous pouvez conserver un index des ID utilisateur, les retirer et les compter. Cependant, cela nécessiterait le téléchargement de toutes les données pour obtenir un compte.

{ 
    "userIds": { 
    "user_one": true, 
    "user_two": true, 
    "user_three": true 
    } 
} 

Ensuite, lorsque vous téléchargez les données que vous pouvez appeler snapshot.numChildren():

var ref = new Firebase('<my-firebase-app>/userIds'); 
ref.once('value', function(snap) { 
    console.log(snap.numChildren()); 
}); 

Si vous ne souhaitez pas télécharger les données, vous pouvez maintenir un nombre total en utilisant 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; 
    }); 
}); 

Ensuite, vous pouvez écouter les utilisateurs en temps réel:

var ref = new Firebase('<my-firebase-app>/userCount'); 
ref.on('value', function(snap) { 
    console.log(snap.val()); 
}); 
+0

Vous dire que je ne peux pas vraiment compter sur le système auth utilisateur de firebase et je dois créer quelque chose pour sauver les nouveaux userids tout le temps. Est-ce que je comprends bien? –

+1

L'authentification Firebase ne fonctionne que pour l'authentification des utilisateurs. Si vous voulez faire quelque chose avec ces données, vous les stockez dans votre base de données Firebase. –

+0

ok, assez juste. Je voudrais avoir accès à au moins tous les identifiants d'utilisateur ou quelque chose comme ça bien que :) J'accepte ceci comme une réponse –

0

Voici un module javascript à cet effet - ce qu'il fait https://gist.github.com/ajaxray/17d6ec5107d2f816cc8a284ce4d7242e

En une seule ligne, est -

Conserver la liste (et le nombre) d'utilisateurs en ligne dans une application Web Firebase - par salles isolées ou globales ment

pour compter tous les utilisateurs utilisant ce module -

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 
});