首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防火墙/快速4-等待防火墙完成配置

防火墙/快速4-等待防火墙完成配置
EN

Stack Overflow用户
提问于 2018-03-30 01:26:49
回答 1查看 205关注 0票数 1

所以在我的FirebaseApp.configure函数中有application didFinishLaunchingWithOptions。如果我一遍又一遍地运行和停止模拟器,它有时会崩溃,说:

终止应用程序的原因是:“(子:)”必须是非空字符串,且不包含“.”#“$”或“'‘”。

我做了我的研究,herehere。两人都说这是因为我试图在配置完成之前访问数据库。前者一般比后者更好,但有时仍然会崩溃,但经常会崩溃。

我的应用程序所做的是,如果用户之前已经登录,它会自动转到默认的启动视图,在该视图中,它通过以下操作访问viewDidLoad中的Firebase数据库:

代码语言:javascript
复制
let messageDB = Database.database().reference().child("Messages")

只是在做:

代码语言:javascript
复制
let rootDB = Database.database().reference()

很好,但是第一个撞坏了.但我需要第一个进入那个特定组的人。还有别的办法来解决这个问题吗?

编辑

下面是已登录时进入默认视图的代码:

代码语言:javascript
复制
let mainStoryBoard = UIStoryboard(name: "Main", bundle: nil) // Get Main Storyboard
let page = mainStoryBoard.instantiateViewController(withIdentifier: "groups") as! GroupsViewController // Cast main storyboard as GroupsViewController

if let username = UserDefaults.standard.object(forKey: "username") {
    page.username = username as! String // Set saved username
}
window?.rootViewController = page // Set root view controller
window?.makeKeyAndVisible()
EN

回答 1

Stack Overflow用户

发布于 2018-03-30 05:49:14

我发现问题了!它就在这里:

代码语言:javascript
复制
if let username = UserDefaults.standard.object(forKey: "username") {
    page.username = username as! String // Set saved username
}

我使用username字段从数据库中获取当前用户的信息,而且由于用户名字段是在视图控制器实例化之后设置的,因此在设置用户名时会出现在firebase引用之后的一些情况,因此它将搜索ref.child("").value()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49567246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档