Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何设计一个存储阵列的简单Firebase数据库?_Arrays_Swift_Xcode_Firebase_Firebase Realtime Database - Fatal编程技术网

Arrays 如何设计一个存储阵列的简单Firebase数据库?

Arrays 如何设计一个存储阵列的简单Firebase数据库?,arrays,swift,xcode,firebase,firebase-realtime-database,Arrays,Swift,Xcode,Firebase,Firebase Realtime Database,我正在使用Swift中的Xcode 8.2.1编写一个IOS应用程序。目前,我已经为一个实现GeoFire的视图控制器设置了数据库,并成功地将位置添加到数据库中。在单独的视图控制器上,我想添加对同一数据库的引用,并向该引用添加子项 这个单独的引用我想存储可以通过数组名访问的不同数组。我希望能够在数据库中添加和删除保存的阵列。此外,我希望能够添加和删除每个单独数组中包含的字符串 我尝试过的代码是: let ref = FIRDatabase.database().reference()

我正在使用Swift中的Xcode 8.2.1编写一个IOS应用程序。目前,我已经为一个实现GeoFire的视图控制器设置了数据库,并成功地将位置添加到数据库中。在单独的视图控制器上,我想添加对同一数据库的引用,并向该引用添加子项

这个单独的引用我想存储可以通过数组名访问的不同数组。我希望能够在数据库中添加和删除保存的阵列。此外,我希望能够添加和删除每个单独数组中包含的字符串

我尝试过的代码是:

    let ref = FIRDatabase.database().reference()

    let childRef = FIRDatabase.database().reference(withPath: "arrays")

    let itemsRef = ref.child("arrays")

    let milkRef = itemsRef.child("array1")
但是当我运行这段代码时,数据库不会更新以显示任何新的子级。有可能完成我的任务吗?如果是,我做错了什么

如果我的问题不清楚,请让我知道,我愿意详细说明。提前感谢您的帮助

读一下:

一般来说,最好避免使用它们,因为通常有更好的方法来组织数据

以下是一些信息:

这将创建一个名为child_node的节点,并为其指定某个_值的值

let ref = FIRDatabase.database().reference()
let childRef = ref.child("child_node")
childRef.setValue("some_value")
导致

root
  child_node: some_value
root
   -Y8hjj9a99js9jd: some_value
   -Yi00ksomosooss: some_value //the second time it's run
如果再次运行代码,它将覆盖现有节点

通常,最好将节点名称与其包含的数据解除关联,以便稍微扩展

let ref = FIRDatabase.database().reference()
let childRef = ref.childByAutoId()
childRef.setValue("some_value")
导致

root
  child_node: some_value
root
   -Y8hjj9a99js9jd: some_value
   -Yi00ksomosooss: some_value //the second time it's run
然后再进一步

let ref = FIRDatabase.database().reference()
let childRef = ref.childByAutoId()
let someData = ["site": "Olympus Mons", "location": "Mars"]
childRef.setValue(someData)
导致

root
   -Y88ujs9mskkms:
         site: "Olympus Mons"
         location: "Mars"
然后你会问自己‘self,这和数组有什么关系’

这是存储“额外”数据的更好方法。例如,您可以将用户位置存储在其节点中

root
  users
     -Yi8joiomso (uid)
         g: xxxx
         l:
           0: xxx
           1: xxx
或者保留对它们在另一个节点中的位置的引用

root
  users
     -Yi8joiomso (uid)
       location: -Yiuhj89ejee
  location
     -Yiuhj89ejee
         g: xxxx
         l:
           0: xxx
           1: xxx
或者将用户保留在位置节点内

root
  location
    userID
       g: xxxx
       l:
          0: xxxx
          1: xxxx
非数组结构为查询、检索数据和组织数据提供了更大的灵活性。

请阅读以下内容:

一般来说,最好避免使用它们,因为通常有更好的方法来组织数据

以下是一些信息:

这将创建一个名为child_node的节点,并为其指定某个_值的值

let ref = FIRDatabase.database().reference()
let childRef = ref.child("child_node")
childRef.setValue("some_value")
导致

root
  child_node: some_value
root
   -Y8hjj9a99js9jd: some_value
   -Yi00ksomosooss: some_value //the second time it's run
如果再次运行代码,它将覆盖现有节点

通常,最好将节点名称与其包含的数据解除关联,以便稍微扩展

let ref = FIRDatabase.database().reference()
let childRef = ref.childByAutoId()
childRef.setValue("some_value")
导致

root
  child_node: some_value
root
   -Y8hjj9a99js9jd: some_value
   -Yi00ksomosooss: some_value //the second time it's run
然后再进一步

let ref = FIRDatabase.database().reference()
let childRef = ref.childByAutoId()
let someData = ["site": "Olympus Mons", "location": "Mars"]
childRef.setValue(someData)
导致

root
   -Y88ujs9mskkms:
         site: "Olympus Mons"
         location: "Mars"
然后你会问自己‘self,这和数组有什么关系’

这是存储“额外”数据的更好方法。例如,您可以将用户位置存储在其节点中

root
  users
     -Yi8joiomso (uid)
         g: xxxx
         l:
           0: xxx
           1: xxx
或者保留对它们在另一个节点中的位置的引用

root
  users
     -Yi8joiomso (uid)
       location: -Yiuhj89ejee
  location
     -Yiuhj89ejee
         g: xxxx
         l:
           0: xxx
           1: xxx
或者将用户保留在位置节点内

root
  location
    userID
       g: xxxx
       l:
          0: xxxx
          1: xxxx

非数组结构为查询、检索数据和组织数据提供了更大的灵活性。

本视频可能会帮助您:您实际上并没有写入任何数据。“同一个数据库”是指同一个节点还是整个Firebase数据库?本视频可能会帮助您:您实际上并没有写入任何数据。“同一个数据库”是指同一个节点还是整个Firebase数据库?