Перенаправлять пользователей на страницу только при первом входе в систему - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь найти способ определить, выполняет ли пользователь первый раз вход (не может полагаться только на регистрацию, чтобы определить это) через firebase.По сути, при любом входе в систему (электронная почта, телефон, Facebook, Google и т. Д.) Я хочу проверить, впервые ли мы добавляем этого пользователя в firebase.

Ответы [ 3 ]

0 голосов
/ 03 июня 2018

Построение ответа Мишеля ...

Я, вероятно, добавлю, что вы можете использовать функции Firebase для создания документа и добавления его в коллекцию profiles (используя Firestore или RTDB) при создании учетной записи.

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

export const userOnCreate: functions.CloudFunction<admin.auth.UserInfo> = functions.auth.user()
  .onCreate((event: functions.Event<admin.auth.UserRecord>) => {
    const user: admin.auth.UserRecord = event.data;

    return admin.firestore().collection('profiles').doc(user.uid).set({
      email: user.email, // or username
      firstTimeSignedIn: false
    });
  });

Добавьте логическое значение для firstTimeSignedIn и при входе запросите документ.Если он не существует (потому что функция не сработала достаточно быстро), вы знаете, что это происходит впервые.И если значение ложно, вы знаете, что это их первый раз.Однако после перенаправления вы можете set значение со слиянием ...

firestore.collection('profiles').doc(uid).set({firstTimeSignedIn: true}, { merge: true });
0 голосов
/ 04 июня 2018

Если вы хотите определить, является ли пользователь новым или существующим при входе / выходе, вам нужно просто проверить userCredential.additionalUserInfo.isNewUser в userCredential, возвращенном во всех методах входа.

0 голосов
/ 02 июня 2018

Вы можете добавить простое логическое значение в пользовательском объекте:

class/interface User {
    username: string;
    password: string;
    // other properties...
    firstTimeSignedIn: boolean;
}

, если firstTimeSignedIn равен true, вы можете перенаправить его и установить на false.

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