You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity Firebase Auth删除APP仍存登录信息,如何禁用自动持久化?

Unity Firebase Auth 凭证持久化问题解决方案

一、删除应用重装后登录信息残留的处理

这种情况是系统自动备份(iOS iCloud/Android Google Drive)同步了存储在系统密钥库/钥匙串里的Auth凭证导致的,可通过配置应用排除Auth数据备份解决:

iOS 配置

在Info.plist中添加备份排除规则:

<key>NSBackupExclusionPaths</key>
<array>
    <string>$(HOME)/Library/Application Support/firebase/auth</string>
</array>

若需彻底禁用应用备份(非必要不推荐),可将排除路径设为*。

Android 配置

在AndroidManifest.xml的<application>标签中指定备份规则:

<application
    android:allowBackup="true"
    android:fullBackupContent="@xml/backup_rules">
</application>

然后在res/xml/backup_rules.xml中添加排除规则:

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
    <exclude domain="sharedpref" path="com.google.firebase.auth.api.gms.firebase_auth_preferences.xml"/>
</full-backup-content>

配置完成后,删除应用再重装,系统就不会恢复Auth的持久化凭证。

二、禁用Auth凭证持久化(替代JS的setPersistence)

Unity Firebase Auth SDK没有和JS完全一致的setPersistence方法,但有两种可靠替代方案:

方案1:设置持久化模式为None(需新版SDK)

在任何登录操作之前调用SetPersistence,将持久化模式设为不保存:

var auth = FirebaseAuth.DefaultInstance;
auth.SetPersistence(Persistence.None);

设置后重启应用,登录状态会直接丢失,用户需重新登录。

方案2:启动时强制登出(兼容旧版SDK)

若SDK版本不支持SetPersistence,可在应用启动时主动登出,清除本地凭证:

void Start()
{
    var auth = FirebaseAuth.DefaultInstance;
    auth.SignOut();
}

该方法简单直接,重启后用户必须重新登录,但不会影响当前会话的登录状态。


内容的提问来源于stack exchange,提问作者Pita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:54:55