停止失去 86% 的移动用户:使用 Firebase 的 Lazy Auth(教程)

发布: (2026年1月2日 GMT+8 19:41)
3 min read
原文: Dev.to

Source: Dev.to

3 亿美元的问题 💸

著名的 “3 亿美元按钮” 案例证明,强制用户在结账前注册会导致收入锐减。在移动端,情况更糟——高达 86 % 的用户在遇到立即登录的墙时会放弃应用。

解决方案: 懒注册(或 “即时” 认证)。

在本快速教程中,你将学习如何:

  1. 首先以 匿名 方式登录,让用户无需任何阻力即可开始使用应用。
  2. 仅在用户需要保存工作时才提示输入凭证,将匿名账户升级,而不是创建新账户。

使用 Firebase 实现匿名登录

Firebase 提供了一种方法,可以在不向用户索要任何数据的情况下创建临时、持久的会话。

文档:

import { getAuth, signInAnonymously } from "firebase/auth";

const auth = getAuth();

// 1. 静默登录
await signInAnonymously(auth);

// 2. 监听认证状态(用户 ID 在刷新后仍然保留!)
auth.onAuthStateChanged((user) => {
  if (user && user.isAnonymous) {
    console.log("User is a Guest 👻", user.uid);
  }
});

升级匿名账户

当用户决定注册(例如,为了保存设置)时,你 不会创建新账户。相反,你将新的凭证链接到已有的匿名用户,保留 uid 以及与之关联的所有 Firestore 数据。

文档:

import { EmailAuthProvider, linkWithCredential } from "firebase/auth";

const upgradeAccount = async (email, password) => {
  const credential = EmailAuthProvider.credential(email, password);
  const user = auth.currentUser;

  try {
    // 将新凭证合并到现有的匿名账户中
    const result = await linkWithCredential(user, credential);
    console.log("Guest upgraded to Permanent User! 🎉");
  } catch (error) {
    console.error("Error linking account:", error);
  }
};

清理被遗弃的访客账户

匿名认证的一个缺点是可能会积累成千上万的未使用访客账户。你可以通过启用 Google Cloud Identity Platform 并设置自动删除策略(例如,删除 30 天未活跃的匿名用户),来自动清除这些账户,而无需编写自定义脚本。

文档:

(此处可添加相关文档链接)

进一步阅读

我在个人博客上写了一篇详细的深度分析,内容包括:

  • React Hooks 实现方式。
  • 处理 credential-already-in-use 错误。
  • Identity Platform 配置的截图。
  • 使用我的 Windows CLI 学习应用的现场演示。

👉 阅读完整文章并查看指导截图: Lazy Registrations with Firebase


你在应用中实现过延迟认证吗?

Back to Blog

相关文章

阅读更多 »