gpt4 book ai didi

ios - DatabaseReference中的key什么时候可以为nil?

转载 作者:行者123 更新时间:2023-11-30 11:07:55 26 4
gpt4 key购买 nike

我刚刚从 5.0.2 更新了 Firebase SDK至5.0.3现在我面临编译错误。

其中之一是由于属性 key过去被定义为var key: String { get }在版本5.0.2现在定义为 var key: String? { get }5.0.3 .

我找不到任何关于它变得为零的原因的解释,文档仅说明:

Gets the last token in a Firebase Database location (e.g. 'fred' in https://SampleChat.firebaseIO-demo.com/users/fred)
@return The key of the location this reference points to.

因为它意味着我的代码需要进行大量重构,所以我想了解如此大的变化的原因以及 key 何时发生。属性(property)为零。

最佳答案

以下是 Firebase 支持提供的一些信息,可作为解释和部分答案。

If you have a DatabaseReference to the root of the database, the key will be nil.

这意味着在对根的 DatabaseReference 的情况下,键将为 nil,或者对于其他引用将具有值,因此它将被定义为可选。所以这是有道理的

var key:String? { get }

然后有一个证明:

var ref: DatabaseReference!
ref = Database.database().reference() //points to the root ref
print(ref)
print(ref.key)

和输出

https://some_firebase.firebaseio.com
nil

如果您考虑一下,请考虑一下像这样的概念性 Firebase 引用

let usersRef = "https://some_firebase.firebaseio.com/users"

当您请求关键属性时,它是从路径派生的

print(usersRef.key)  //prints Optional("users")

"https://some_firebase.firebaseio.com/users"
^^^^^ the key

对于根DatabaseReference,没有从中获取 key 的路径。

关于ios - DatabaseReference中的key什么时候可以为nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52491752/

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