周三下午三点,我又一次新建了React Native项目,然后打开了之前三个项目的代码库。复制、粘贴、改变量名——第无数次重复这套流程。300行监听逻辑、路由守卫、权限判断,还有那个总让我心虚的安全隐患:把完整的Firebase User对象塞进state,React DevTools里一览无余。

如果你用过Clerk,就知道差距在哪。包裹一下就能搞定的事,Firebase开发者却在手写同样的boilerplate。npm上搜了一圈,没有现成的方案。于是我花了一个周末,把这套重复劳动打包成了FireGuard。

上线4天,364次下载。看来被这个问题折磨的不止我一个。

打开网易新闻 查看精彩图片

FireGuard的核心很简单:用声明式组件替代命令式代码。自动处理登录状态监听,控制权限可见,路由跳转逻辑内置其中。最关键是安全设计——不再把原始User对象暴露给React状态,敏感令牌被隔离在内部context。

setup时间压到了5分钟以内。npm install react-native-fireguard,配置Firebase实例,包裹根组件,结束。之前那个300行的_layout.jsx,现在大概剩20行。

打开网易新闻 查看精彩图片

这个项目的有趣之处不在于技术难度。Firebase Auth的API本身很成熟,痛点在于"每次都要重新组装"。Clerk证明了开发者愿意为体验付费,但Firebase生态里这个需求被忽视了——大概因为"能跑就行"的代码太容易复制。

364次下载是个小数字,但它验证了一件事:重复劳动的厌恶感,足够驱动一个周末的side project。接下来我准备补全测试覆盖,然后看看社区反馈再决定要不要加SSO支持。毕竟,我自己就是第一个用户。