gpt4 book ai didi

ios - 如何在 Firebase 快照的控制流中使用 Nil? ( swift )

转载 作者:可可西里 更新时间:2023-11-01 00:58:56 26 4
gpt4 key购买 nike

<分区>

我正在尝试检查节点上是否存在键/值 (TestKey/TestValue),以及它是否执行 A 操作以及是否不执行 B。

我在 StackOverflow 上找到了与此相关的类似主题,但似乎没有一个解决方案对我有用:Checking if Firebase snapshot is equal to nil in Swift

我设置了一个数据库,其中已经插入了 TestKey/TestValue key 对。这是我的代码:

var ref: FIRDatabaseReference!
ref = FIRDatabase.database().reference()

ref.observeSingleEventOfType(.Value, withBlock: { (snapshot) in

//A print test to see stored value before control flow
print(snapshot.value!["TestKey"]) //returns TestValue
print(snapshot.value!["NilKey"]) //returns nil

// I change the value from TestKey <-> NilKey here to test the control flow
if snapshot.value!["TestKey"] != nil {
print("Exists currently")
} else {
print("Does not exist currently")
}

}) { (error) in
print(error.localizedDescription)
}

问题是只有“A”被执行了,即使打印测试显示结果为nil。

我曾尝试使用 == nil 来反转操作,也曾尝试过“is NSNull”。

我似乎无法让控制流正常工作。也许以下其中一项是罪魁祸首,但我不确定:

  1. 持久化与 observesSingleEventOfType 的交互
  2. 不移除观察者(我什至需要为 observeSingleEventType 移除吗?)
  3. 与可选值有关
  4. 与异步调用有关的事情
  5. 与 firebase 存储 NSAnyObjects 的事实有关

最终目标是检查键/值对是否存在,如果存在:什么也不做,如果不存在:创建它。我做错了什么,我怎样才能让这个控制流起作用?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com