Есть ли способ узнать, вошел ли пользователь в данный момент на сайте Firebase? - PullRequest
0 голосов
/ 03 ноября 2018

В настоящее время веб-сайт Firebase показывает только тех пользователей, которые выполнили вход до , как показано на рисунке ниже, но он не сообщает мне, кто выполнил вход в данный момент . Мне интересно, есть ли способ сделать это. Лучше всего, если бы я мог просмотреть журнал действий входа / выхода. Это в основном для школьного проекта, поэтому было бы полезно, если бы у меня было что-то визуальное, чтобы показать, что пользователи входят и выходят. Зарегистрированные пользователи взяты из приложения, которое я разработал.

enter image description here

Я пытался использовать такие события:

private fun signIn() {
    val intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient)
    startActivityForResult(intent, REQUEST_CODE_SIGN_IN)
    window.setWindowAnimations(0)
/**
 * For firebase analytics
 */
val user = mAuth!!.currentUser
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this)

val log = Bundle()
log.putString("user_name", user?.displayName)
log.putString("time", System.currentTimeMillis().toString())
mFirebaseAnalytics?.logEvent("login_event", log)
}

Но даже не появляется:

enter image description here

Ответы [ 3 ]

0 голосов
/ 03 ноября 2018

Я делаю так в своем приложении, и я надеюсь, что это поможет и вам. Итак, я делаю то, что я определил ребенка chatStatus в базе данных firebase в реальном времени, но под UUID этого пользователя и из вашего приложения для Android вы обновляете этот статус только каждый раз, когда пользователь запускает приложение, выполняя что-то вроде этого в своем методе mainactivity

@Override
protected void onCreate(Bundle savedInstanceState) {
  YourDatabaseReference.child("Chat Status").setValue(boolean/Date);
}

enter image description here

0 голосов
/ 03 ноября 2018

Когда пользователь входит в систему с помощью Аутентификации Firebase, его сеанс входа в систему является неопределенным и заканчивается только после того, как он явно выйдет из системы, или если потребуется потребовать повторного входа (например, если пароль был изменен). Большинству пользователей потребуется один раз войти в систему, а затем продолжить использование приложения (перезапустить его) без необходимости повторного входа.

По этой причине число пользователей, вошедших в систему, вероятно, будет намного выше, чем количество пользователей, которые в данный момент используют приложение. Консоль Firebase не показывает текущее количество активных пользователей.

С помощью аналитики вы можете попытаться получить оценку количества активных пользователей. Но самый точный способ отслеживания активных пользователей - это построение так называемой системы присутствия поверх базы данных Firebase в реальном времени . По сути, это версия с наддувом, которую Шехроз предлагает в своем ответе. Это может быть немного сложно реализовать, если вы никогда не делали этого раньше, поэтому я настоятельно рекомендую начать с / использовать образец в документации .

0 голосов
/ 03 ноября 2018

Вы можете перейти к https://firebase.google.com/docs/analytics/android/events и получить представление об этом аналитическом процессе. Это поможет вам выполнить множество аналитических задач на основе логов. Ниже код сегмента также получите с официального сайта.

    private FirebaseAnalytics mFirebaseAnalytics;
    .....
    // Obtain the FirebaseAnalytics instance.
    mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
   .....

   //for your work
   Bundle params = new Bundle(); 
   params.putString("user_name", name); 
   params.putString("loggintime", logintimestamp);
   mFirebaseAnalytics.logEvent("loggin_event", params);

вы можете сделать это для всех ваших журналов. Но если вы только авторизуетесь, войдите и выйдите из системы. Вы можете просто использовать свою таблицу базы данных, чтобы вести свои журналы пользовательских данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...