Firebase数据库结构

时间:2017-06-02 10:50:47

标签: ios swift firebase firebase-realtime-database

我正在研究有关餐厅的申请。 但是Firebase数据库结构有些问题。 我的代码的数据库结构是这样的:

next

如何将结构更改为:

restaurants {
             AutoID {
                      name: "nnnnn",
                      phone:"88888888" }
             AutoID {
                      name: "nnnnn",
                      phone:"88888888" }
             image {
                    AutoID: URL
                    AutoID: URL }
}

目前的代码是:

restaurants {
             AutoID {
                      name: "nnnnn",
                      phone:"88888888",
                      image: URL }
             AutoID {
                      name: "nnnnn",
                      phone:"88888888",
                      image: URL }

非常感谢!

1 个答案:

答案 0 :(得分:0)

正如您所说,您首先在FIRStorage中存储图片,然后添加namephone您需要做的事情是在imageRef的关闭内需要存储您存储的图像URL的引用,因此在控制器中声明一个实例属性并将其设置在该闭包内,并且也不要在DB中设置图像URL,之后使用保存按钮使用新创建的属性来发布名称,电话和网址同时。

var imageURL = ""

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
{
    let image = info[UIImagePickerControllerOriginalImage] as? UIImage

    addImage.image = image

    var data = Data()
    data = UIImagePNGRepresentation(image!)!

    let uniqueName = NSUUID().uuidString
    let imageRef = FIRStorage.storage().reference().child("restaurantImage").child("\(uniqueName)")
    imageRef.put(data, metadata: nil).observe(.success){(snapshot) in
        self.imageURL = snapshot.metadata?.downloadURL()?.absoluteString
        //Remove other code        
    }
    self.dismiss(animated: true, completion: nil)
}

现在使用addRestaurant的{​​{1}}添加密钥,并将其值设置为image

imageURL