Firebase匿名用户会发生什么?

时间:2016-08-01 08:19:09

标签: firebase firebase-authentication

我想知道我的应用用户会对他们使用匿名登录方法会发生什么。

Firebase文档真的很糟糕,并没有解释所有内容,并希望开发人员能够找到自己。 我在其旧版本文档中发现匿名会话将根据已在Login&中设置的到期时间到期。 Auth选项卡,但即使没有提到这意味着只是会话结束,或者意味着用户ID也会从我的应用用户列表中删除或者发生了什么?

我找到了this answer,但实在是不可接受。如果您使用Web应用程序并使所有事情变得困难,匿名用户的数量将会非常快速增长。 我甚至无法在仪表板中看到我的应用用户数量!!!!! 所以我该怎么做?我应该自己为我的数据开发一个仪表板,还是Firebase团队应该这样做?至少对于管理用户而言,我应该拥有的功能不仅仅是使用他们的电子邮件搜索用户,而且当您使用自定义登录时,您也无法做到这一点。

3 个答案:

答案 0 :(得分:9)

匿名用户不会过期,目前还没有任何自动清除方法。

Firebase不会自动删除它们,因为它并不真正知道用户是否仍在存储链接到该登录的数据 - 只有应用创建者才会这样做。想象一下,如果你正在手机上玩益智游戏,并达到100级。那么当你明年去玩101级游戏时,所有进度都会丢失。 Firebase不能假定用户一年不活动意味着该帐户可以被移除。

但是有一些工具应该有所帮助。

1)Admin SDK& Firebase CLI列出用户。

2)Linking multiple auth providers

3)Auth State Persistence

列出用户后,您可以检查每个用户是否还有其他提供商,并且最近没有使用过,没有存储数据,delete them

但是,更好的方法是确保每个用户只创建一个帐户。如果您创建匿名帐户以帮助用户在登录前存储数据,您可能需要考虑提示他们链接身份验证提供程序(如Google或电子邮件)。如果您关联帐户,而不是创建新帐户,则可以避免活跃用户放弃帐户。

通常,您还需要确保使用身份验证状态持久性,以确保不会创建超过必要的帐户。每位新访问者创建一个帐户,而不是每次有人反复访问您的网页时,这将极大地帮助您控制用户增长。

答案 1 :(得分:2)

在我的情况下,我在用户不知情的情况下使用匿名登录方法进行身份验证。 每次用户离开应用程序时,请通过-

删除匿名用户。
componentDidMount = () => {
    this.worker = new WebWorker(worker);
}

getInfo = () => {
    this.worker.postMessage(this.state.query);

    this.setState(prevState => ({
        ...prevState,
        open: true
    }), () => {
        this.worker.addEventListener('message', (event) => {
            const res = event.data;
            this.setState({
                results: res,
                open: false
            });
        });
    });
}

与此相关的匿名用户将不会堆积,并且会限制应用程序中匿名用户的数量

答案 2 :(得分:0)

如果您希望从用户列表中删除匿名用户,则必须编写一项服务来为您执行此操作。

由于firebase不提供列出注册用户的方法,因此您必须确保在数据库中存储某种用户列表。然后,您可以将node.js admin sdk用于get user data,检查是否user is anonymous,然后找到when the user was created。出于性能原因,您可能希望将此信息存储在数据库的特殊区域中,并立即将其全部检索。一旦您确定了陈旧的匿名用户,他们就可以easily deleted