我试图通过firebase找到一种方法来识别用户是否第一次登录(不能完全依赖注册来确定这一点)。基本上,在任何类型的登录(电子邮件,电话,脸书,谷歌等),我想检查这是否是我们第一次将此用户添加到firebase。
答案 0 :(得分:1)
您可以在用户对象中添加一个简单的布尔值:
class/interface User {
username: string;
password: string;
// other properties...
firstTimeSignedIn: boolean;
}
如果firstTimeSignedIn为true
,您可以重定向并将其设置为false
。
答案 1 :(得分:1)
建立米歇尔的答案......
我可能会在那里投入您可以使用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
使用合并... {/ p>
firestore.collection('profiles').doc(uid).set({firstTimeSignedIn: true}, { merge: true });
答案 2 :(得分:0)
如果您想在登录/注销时确定用户是新用户还是现有用户,则只需检查所有登录方法中返回的userCredential
中的userCredential.additionalUserInfo.isNewUser
。