首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么知道这是我第一次作为用户登录?

我怎么知道这是我第一次作为用户登录?
EN

Stack Overflow用户
提问于 2021-04-20 03:06:56
回答 1查看 54关注 0票数 1

我的问题

我想知道用户什么时候在我的应用程序(firebase)上第一次连接到Google。我使用auth.signInWithPopup(googleProvider);

我在文档中搜索,发现了这个:AdditionalUserInfo - Type aliases。其中有这样的内容:

代码语言:javascript
复制
AdditionalUserInfo: { isNewUser: boolean; profile: Object | null; providerId: string; username?: string | null }

isNewUser是我要搜索的,但是我不知道如何使用这个“类型别名”。当我这样做的时候:

代码语言:javascript
复制
import { auth } from './firebase'

console.log(auth.AdditionalUserInfo);

Typescript和我的集成开发环境告诉我没有AdditionalUserInfo

我的firebase.ts文件:

代码语言:javascript
复制
import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/firestore';
var firebaseConfig = {some secret stuff...};

firebase.initializeApp(firebaseConfig);

export const auth = firebase.auth();
export const googleProvider = new firebase.auth.GoogleAuthProvider();

export const db = firebase.firestore();

我的App.svelte:

代码语言:javascript
复制
<script lang="ts">
    import { auth, googleProvider, db } from './firebase';
    import { authState } from 'rxfire/auth';
import { ArgumentOutOfRangeError } from 'rxjs';

    let user;
    let list;
    let signedin:boolean = false;

    function getTodos() {
        
        const todos = db.collection('todos-list').doc(auth.currentUser.displayName+"'s List")
        todos.onSnapshot(doc => {
            list = doc.data();
            console.log(list)
        }); 

    }

    const unsubscribe = authState(auth).subscribe(u => user = u);

    function login() {
        auth.signInWithPopup(googleProvider);
        signedin = true;

        console.log()

        getTodos()
    }

    function signout() {
        auth.signOut()
        signedin = false;
    }

</script>

<main>
    {#if signedin}
        <button on:click={ signout }>Sign Out</button>
        <h1>{ user.displayName }</h1>
        <img src="{ user.photoURL }" alt="">
    {/if}

    {#if !signedin}
        <button on:click="{ login }">Sign in With Google</button>
    {/if}
</main>

这是我的package.json:

代码语言:javascript
复制
{
  "name": "svelte-app",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "build": "rollup -c",
    "dev": "rollup -c -w",
    "start": "sirv public --no-clear",
    "validate": "svelte-check"
  },
  "devDependencies": {
    "@rollup/plugin-commonjs": "^17.0.0",
    "@rollup/plugin-node-resolve": "^11.0.0",
    "rollup": "^2.3.4",
    "rollup-plugin-css-only": "^3.1.0",
    "rollup-plugin-livereload": "^2.0.0",
    "rollup-plugin-svelte": "^7.0.0",
    "rollup-plugin-terser": "^7.0.0",
    "svelte": "^3.0.0",
    "svelte-check": "^1.0.0",
    "svelte-preprocess": "^4.0.0",
    "@rollup/plugin-typescript": "^8.0.0",
    "typescript": "^4.0.0",
    "tslib": "^2.0.0",
    "@tsconfig/svelte": "^1.0.0"
  },
  "dependencies": {
    "firebase": "^8.4.1",
    "rxfire": "^4.0.0",
    "rxjs": "^6.6.7",
    "sirv-cli": "^1.0.0"
  }
}

请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2021-04-20 04:12:57

在nodejs/js客户端中没有AdditionalUserInfo。您可以:

代码语言:javascript
复制
firebase.auth().currentUser.metadata.creationTime === firebase.auth().currentUser.metadata.lastSignInTime
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67167954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档