相关疑难解决方法(0)

Firebase - 删除并重新安装应用程序不会取消对用户进行身份验证

使用以下代码对用户进行身份验证后(下面是我的代码的修剪版本,因此只显示成功的登录逻辑)...

let firebaseReference = Firebase(url: "https://MY-FIREBASE.firebaseio.com")
Run Code Online (Sandbox Code Playgroud)

 

FBSession.openActiveSessionWithReadPermissions(["public_profile", "user_friends"], allowLoginUI: true,
    completionHandler: { session, state, error in

        if state == FBSessionState.Open {
            let accessToken = session.accessTokenData.accessToken
            firebaseReference.authWithOAuthProvider("facebook", token: accessToken,
                withCompletionBlock: { error, authData in

                    if error != nil {
                        // Login failed.
                    } else {
                        // Logged in!
                        println("Logged in! \(authData)")
                    }
            })
        }
    })
}
Run Code Online (Sandbox Code Playgroud)

(即启动并运行应用程序,成功登录).

如果您随后删除了应用程序并在同一设备上重新安装,则此调用(我在应用程序委托中使用以确定用户是否已登录)将始终返回他们已登录的状态.

if firebaseReference.authData == nil {
    // Not logged in
} else {
    // Logged in
}
Run Code Online (Sandbox Code Playgroud)

这是为什么?我本来以为删除应用程序并重新安装它应该擦除所有数据.

如果您重置iOS模拟器中的内容和设置,并安装该应用程序,该firebaseReference.authData属性将再次nil.

ios firebase swift

34
推荐指数
4
解决办法
1万
查看次数

为什么卸载应用程序后仍保留 FirebaseAuth currentUser()?

每当我第一次运行我的应用程序(仅当我卸载并重新安装应用程序时),我试图在 Flutter 中获取用户的登录状态,以下代码返回用户。

我已经尝试获取用户whenCompletethen返回相同的结果。

 FirebaseAuth _firebaseAuth = FirebaseAuth.instance;    
 FirebaseUser user = await _firebaseAuth.currentUser();
 return user;
Run Code Online (Sandbox Code Playgroud)

返回的用户是我的 Android 设备上的平台用户,如果我在安装后重新加载我的应用程序,用户将被删除。

编辑:

  1. 我已经尝试了/sf/answers/3406255121/中的所有步骤
  2. 我从 Firebase 中删除了所有用户
  3. 我的应用程序显示的用户 ID 不在我的 Firebase 中。

有趣的是最小化应用程序会删除未知用户。

android flutter

6
推荐指数
1
解决办法
1873
查看次数

标签 统计

android ×1

firebase ×1

flutter ×1

ios ×1

swift ×1