swift - 在 Firebase 注销时刷新 View Controller

标签 swift firebase

我有一个 View Controller ,它有一个 UICollectionView,其中包含从 Firebase 中提取的信息。当用户访问此 View Controller 时,他们的信息将放置在 Collection View 单元格中。

但是,当用户注销并使用其他帐户登录时,之前用户的数据会保留在 Collection View 中,而不是用新用户的信息重新填充。

现在一切都从 viewDidLoad() 调用:

override func viewDidLoad() {
    super.viewDidLoad()
    loadData()
    loadOngoingQuest()

    collectionView.dataSource = self
    collectionView.delegate = self
}

loadData()loadOngoingQuest() 将信息从 Firebase 提取到用于填充 Collection View 的数组中。

我尝试在 viewWillAppear() 中添加所有内容,但它会导致一些故障,因为 Collection View 涉及滚动和其他我不想在每次 View Controller 出现时都运行的动画。

基本上我只想在每次用户注销时重新加载整个 View Controller 。我该怎么做?

最佳答案

你应该做这样的事情,查看评论了解更多信息:

let firebaseAuth = FIRAuth.auth()
do {
    try firebaseAuth?.signOut()
    // clear the array that your collectionView is based on
    // reload your collectionView (which will clear all the data since your array is empty)
} catch let signOutError as NSError {
    print ("Error signing out: %@", signOutError)
}

更新:
另一种处理方式:

创建一个具有以下属性的 Struct:

struct Global {
    var isNewUser = false
}

每当您注销用户时,请执行以下操作:

Global.isNewUser = true

然后在您的 collectionView 中检查 Global.isNewUser == true 然后重新加载所有内容,最重要的是设置 Global.isNewUser = false .这样你就只会加载所有内容一次。

关于swift - 在 Firebase 注销时刷新 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48874247/

相关文章:

ios - UIButton 背景图像调整大小

javascript - 如何为静态托管网站设置 Cloud Firestore

ios - 使用 Swift 从 firebase 获取自定义单元类中的数据

java - 在 Katalon-Studio 中使用 Firebase SDK

android - 更改包名称后 FCM 不工作

ios - 滚动 UITableView 时的值变化

IOS swift - 跟踪使用过的应用程序

ios - Swift:不知道如何调用我的委托(delegate)

swift - AVSpeech合成器语言

javascript - 带有 .p12 和 pem 证书的 Node.js POST 请求输出 "Error: read ECONNRESET"