this.afAuth.auth.onAuthStateChanged(user => {
const createdAt = user.metadata.creationTime
const lastLogin = user.metadata.lastSignInTime
const a = user.metadata['a'] // <- Typescript does not allow '.' operator
const b = user.metadata['b'] // <- Typescript does not allow '.' operator
console.log(`${ user.email } was created ${ createdAt } (${ a }).`)
console.log(`${ user.email } last logged in ${ lastLogin } (${ b }).`)
})
this.afAuth.auth.signInWithPopup(new firebase.auth.FacebookAuthProvider()).then(
(userCredential) => {//do something with user - notice that this is a user credential.
});
无论如何,在这个userCredential中有用户,如果你这样做
let myObj = JSON.parse(JSON.stringify(userCredential.user);
您将看到可以访问createdAt字段
myObj.createdAt // somenumber = time in miliseconds since 1970
所以要访问它
let myDate: Date = new Date();
myDate.setTime(+myObj.createdAt); //the + is important, to make sure it converts to number
console.log("CREATED AT = " + myDate.toString() );
7条答案
按热度按时间vptzau2j1#
目前,AFAIK只能通过Admin Node.js SDK获取创建日期:
文件:https://firebase.google.com/docs/reference/admin/node/firebase-admin.auth.usermetadata.md#usermetadatacreationtime
pkbketx92#
在Firebase客户端web API上,您可以通过以下方式获取用户的账号创建日期:
链接到无用的documentation。
hl0ma9xz3#
管理后台SDK
如果您试图在服务器端应用程序上获取信息,现在可以通过以下方式实现。
客户端应用
尽管你可以在firebase Auth控制台上看到这些信息,但你不能在应用程序端检索这些数据,就像你在documentation中看到的那样。
如果你想在你的应用程序中使用这些数据,你需要将它存储在你的数据库中,比如
databaseRoot/user/userUid/createdAt
。b4lqfgs44#
在撰写本文时,Angularfire2处于候选版本5。Javascript API可以检索currently authenticated user的创建日期和最后登录日期。
示例:
虽然没有作为正式属性列出,但
a
和b
分别为创建日期和最后登录日期生成Date
对象,而creationTime
和lastSignInTime
与GMT字符串值相同。gt0wga4j5#
此函数将遍历所有用户,并在
users/$uid/company
位置下记录creationDate0mkxixxg6#
有一种方法可以得到它...当你得到一个firebase.User -通常从一些代码,如:
无论如何,在这个userCredential中有用户,如果你这样做
您将看到可以访问createdAt字段
所以要访问它
瞧!
8yoxcaq77#
截至2021年8月,console.dir(user)提供:
因此,
user.metadata.creationTimestamp
将给予创建日期。