Tag: 火力点

Firebase:何时在swift中调用removeObserverWithHandle

文档说你需要调用observeEventType:withBlock去除观察者,如果你不再需要它。 我在ViewDidDisAppear看过样本。 我也发现一些Obj-C代码在deinit调用了这个方法,这在Swift中是不需要的。 然而,在我的简单应用程序中,只要我在应用程序中,我想要同步数据。 如果是这种情况,我是否必须调用observeEventType:withBlock ? 我检查了Firebase网站上的Chat-Swift示例代码,但未findobserveEventType:withBlock 。 这是否意味着不要调用observeEventType:withBlock 如果我希望观察者在应用程序正在使用时开启? 谢谢。 UPDATE 感谢Jay和David。 我发现在ViewWillAppear中观察并在ViewDidDisappear中删除它是有意义的。 但是,我正在使用observeEventType来监视节点的任何值更改,并会更新UI(如果有)。 如果我把它放在ViewWillAppear中: override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) ref.observeEventType(.Value, withBlock: { snap in { // **update UI if there is any Value change** }) } 把它放在viewWillAppear的问题是,每次出现视图时都会调用它,而不pipe值是否改变。 因此,下载快照,每当我返回到视图时,我的用户界面都会刷新。 这变得适得其反。 我也尝试了ChildAdded / ChildRemoved ,但是,它只返回最后一个节点,而不是从我的ref的path: 例如,如果我添加到ref / child1 / ChildAdded / child3 /值, ChildAdded只会返回child3 […]

在Firebase数据库中有效存储时间?

我只是想知道,是否有一种方法来使用Swift将时间存储在Firebase中? 我之所以问,是因为我想创build一个应用程序,当我创build一个特定的对象时,对象将启动一个计时器,从24小时的时间开始计数。 当这些24小时到期时,该对象被删除。 我还想显示一个倒数计时器来显示删除之前对象剩下的时间。 我试着将小时和分钟作为整数存储到我的数据库中,但这似乎不是很有效,因为我不得不担心AM / PM,可能不得不担心它是哪一天。 我也在考虑将date存储为string,但在计算如何不断将string更改为整数并递减时间以显示倒计时方面似乎很艰难。 我查看了FirebaseServerValue.timestamp()但似乎无法将其存储到Firebase中。 有没有关于如何实现这一点的任何提示或想法? 谢谢。 编辑:尝试将FirebaseServerValue.timestamp()存储到Firebase中: self.firebaseRef.childByAutoId().setValue([ "individualId":individualId.text, "timeCreated": FirebaseServerValue.timestamp() ]) 但是我得到一个错误,说'_' is not convertible to 'StringLiteralConvertible' 。 我试图看看时间戳是否有任何方法把它变成一个string或整数,但找不到任何我认为会有用的自动完成。