ios - 使用自动增量 Swift 3 在 Firebase 数据库中存储帖子(图像、标题)

标签 ios swift firebase swift3 firebase-realtime-database

我正在尝试将用户帖子存储在我的 firebase 数据中,如下所示:

enter image description here

我已使用以下代码成功将每个图像存储在存储器中:

        let storage = FIRStorage.storage()
        let data = UIImagePNGRepresentation(postImage!)
        // guard for user id
        guard let uid = FIRAuth.auth()?.currentUser?.uid else {
            return
        }
        let photosRef = storage.reference().child("posts")
        let imageName = NSUUID().uuidString
        let photoRef = photosRef.child("\(uid)")

        photoRef.child("\(imageName)").put(data!, metadata: nil){(metaData,error) in
            if let error = error {
                print("there was an error")
                print(error.localizedDescription)
                return
            }else{
                // store downloadURL
                let downloadURL = metaData!.downloadURL()!.absoluteString

                let values = ["uid": uid, "caption": caption, "download_url": downloadURL]

                // store downloadURL at database
                let databaseRef = FIRDatabase.database().reference()
                // store values in posts/post_1 (post_1..post_2 etc)
            }

        }

但是,我在将 downloadURL(值数组)存储在我的帖子数据库中时遇到了问题,因为我不知道如何为 post 1 post 2 post 3 等等等等

有没有更好的方法将帖子存储在 posts 数据库中而不需要增量值?

感谢任何帮助。

谢谢!

最佳答案

存储增量值的方法有很多种 - 这完全取决于您希望如何存储这些值以及您将如何检索和使用它们。

一般过程是使用 childByAutoId 创建父节点 - Firebase 为您生成不同的节点名称。

let ref = rootNode.childByAutoid()
ref.setValue("my value")

这将导致节点具有 Firebase 生成的 key

root_node
   -Ynaosdokasodkpasd: "my Value"

话虽这么说,但很难以有意义的方式对它们进行排序,因此您可能希望添加能够让您指定顺序的节点

let ref = rootNode.childByAutoid()
let dict = ["text": "my value", timeStamp: "20161207131600"]
ref.setValue(dict)

结果是

-Ynaosdokasodkpasd
    text: "my value"
    timeStamp: "20161207131600"

然后您可以使用时间戳在 Firebase 查询中对数据进行排序。

关于ios - 使用自动增量 Swift 3 在 Firebase 数据库中存储帖子(图像、标题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41019580/

相关文章:

Firebase:从之前的导出中导入 firestore 数据库会触发 Cloud Functions 吗?

ios - 在解析中删除指向 PFObject 的指针?

ios - EXC_BAD_ACCESS 属性崩溃的 getter 方法

ios - 无法在 Firebase API 回调 block 中的函数内赋值

swift - 使用输入参数崩溃在 Swift 中子类化 CIFilter

swift - Swift 中的指针、指针算法和原始数据

javascript - 在 firebase 数组中检索项目列表的相关项目列表

iOS 9 启动图像大小?

ios - NSAutoLayoutConstraints 崩溃的应用程序

ios - 如何防止键盘在 SwiftUI 中向上推 View ?