Firebase:从实时数据库中检索 childByAutoID
Posted
技术标签:
【中文标题】Firebase:从实时数据库中检索 childByAutoID【英文标题】:Firebase : Retrieve childByAutoID from Realtime Database 【发布时间】:2016-09-05 10:10:47 【问题描述】:我目前正在学习 Firebase 和 ios,所以请多多包涵。我目前正在向名为Posts
的表发帖,如下所示:
let postInfo = ["Description": txtPostDescription.text!, "ImageUrl": imgUrl, "Likes": 0]
var t = FIRDatabase.database().reference().child("Posts").childByAutoId().setValue(postInfo)
print(t)
我正在尝试检索插入新记录时创建的primary key
,但是我无法检索它。我试过childByAutoId()
(但由于浏览网页而无法找到可靠的解决方案,这是一个随机猜测)。有什么想法吗?
【问题讨论】:
【参考方案1】:let postInfo = ["Description": txtPostDescription.text!, "ImageUrl": imgUrl, "Likes": 0]
var reference = FIRDatabase.database().reference().child("Posts").childByAutoId()
reference.setValue(postInfo)
let childautoID = reference.key
print(childautoID)
注意 :- Alhogh childByAutoId()
是 Firebase
的一个很棒的功能。但是当你想创建一个具有唯一键的节点时,更喜欢 timestamps
来存储数据。原因为什么我更喜欢时间戳是因为它们也有助于数据排序......但这只是我......
替代方案:-
let timeStamp = Int(NSDate.timeIntervalSinceReferenceDate()*1000) //Will give you a unique id every second or even millisecond if you want..
FIRDatabase.database().reference().child("Posts").child(timeStamp).setValue(postInfo)
【讨论】:
工作,谢谢@Dravidian 感谢@Dravidian 请注意 childByAutoId() 确实 返回一个可按时间排序的 ID:“childByAutoId 生成的唯一键:以客户端生成的时间戳为前缀,以便生成的列表将按时间顺序排列。” firebase.google.com/docs/reference/swift/firebasedatabase/api/…以上是关于Firebase:从实时数据库中检索 childByAutoID的主要内容,如果未能解决你的问题,请参考以下文章
Firebase:从实时数据库中检索 childByAutoID
使用 SwiftUI Xcode 11 从 firebase 实时数据库中检索数据