📜  swift firebase realtime db 类 - Swift (1)

📅  最后修改于: 2023-12-03 15:05:25.736000             🧑  作者: Mango

Swift Firebase Realtime Database 类

Firebase Realtime Database是一种云托管的NoSQL数据库,可实现应用程序之间的实时同步。Swift Firebase Realtime Database类提供了对Firebase Realtime Database的访问以及对数据进行读写的方法。

安装

Swift Firebase Realtime Database类可通过CocoaPods安装,只需将以下代码添加到Podfile文件中:

pod 'Firebase/Database'
开始使用

使用Swift Firebase Realtime Database类的第一步是导入FirebaseDatabase框架。

import FirebaseDatabase

接下来,在Firebase初始化代码中获取FirebaseDatabase实例。

FirebaseApp.configure()
let database = Database.database()

现在,我们可以使用获取的database实例进行读写数据。

读取数据

使用Swift Firebase Realtime Database类,可以通过添加“观察者”来实时同步数据。观察者是一个回调方法,用于接收数据更改的通知。

假设我们的Firebase Realtime Database中有一个名为"users"的节点,其中包含键值对,表示用户名称和电子邮件地址。

let ref = database.reference(withPath: "users")

为了实时同步数据,我们需要添加一个观察者。

ref.observe(.value, with: { snapshot in
  let value = snapshot.value as? NSDictionary
  print(value)
})

observe方法接受一个DataEventType枚举作为第一个参数。在此示例中,我们将其设置为观察整个值更改的".value"。

第二个参数是一个回调方法,在数据更改时将被调用。如果您的数据中有NSDictionaries或NSArrays,则可以使用它将快照数据转换为相应的类型。

写入数据

Swift Firebase Realtime Database类提供了多种方法可以写入数据。下面是一些最常用的方法。

let usersRef = ref.child("users")
let uidRef = usersRef.childByAutoId()

let userData = [
  "username": "testuser",
  "email": "testuser@example.com"
]

uidRef.setValue(userData)

在此示例中,我们首先获取到父节点"users"的引用,然后获取到一个自动生成的唯一ID,称为uidRef。我们创建了一个包含用户数据的字典,并使用setValue方法将其写入uidRef。setValue方法也可以接受一个完整路径,并将数据写入该路径。

let userData = [
  "username": "testuser",
  "email": "testuser@example.com"
]
ref.child("users").childByAutoId().setValue(userData)
查询数据

Swift Firebase Realtime Database类提供了多种查询数据的方法。下面是一些最常用的方法。

let query = ref.queryOrdered(byChild: "username").queryEqual(toValue: "testuser")

query.observe(.value, with: { snapshot in
  let value = snapshot.value as? NSDictionary
  print(value)
})

在此示例中,我们创建了一个查询对象,该对象按"username"属性排序,并查找值等于"testuser"的节点。然后我们添加了一个观察者,在查询返回数据时执行回调。

结论

Swift Firebase Realtime Database类提供了极为方便的读写方法,也提供了灵活的查询方式。它是一个强大的工具,可使开发人员更轻松地在应用程序之间实现数据同步。