如何将 Firebase 数据加载到图形实体?有没有办法对数据进行模态化? Swift 3
How to load Firebase data to Graph Entity? Is there a way to modal the data? With Swift 3
我是 CosmicMind 的新手,对数据处理有疑问。
在CosmicMind CardTableView Sample中,数据是从Entity类型的SampleData中读取的。
问题 1:有什么方法可以将我的 Firebase 数据加载到实体中?如果是这样,该怎么做?看起来应该不难,因为已经 JSON 了。我正在使用 Swift 3.2
问题 2:有没有办法对实体进行模态化?
非常感谢!!
欢迎来到 CosmicMind :)
最简单的方法是创建一个导入函数,接收您的 JSON 数据并将键值对映射到实体中的属性。如果 Firebase 中有类型说明符,则可以将其设置为实体类型。我不使用 Firebase,所以我无法 100% 描述设置,但这里是您将要执行的操作的示例,假设 Firebase 为您提供了一个唯一 ID。
func importFirebase(data: [[String: Any]]) {
let graph = Graph()
let search = Search<Entity>(graph: graph).for(types: "User")
let users = search.sync()
var index = [Int: Entity]()
for user in users {
if let id = user["id"] as? Int {
index[id] = user
}
}
for json in data {
if let id = json["id"] as? Int {
var entity: Entity
if nil == index[id] {
entity = Entity(type: "User")
} else {
entity = index[id]!
}
for (k, v) in json {
entity[k] = v
}
}
}
graph.sync()
}
let data = [
["type": "User", "id": 1, "name": "Daniel", "age": 33],
["type": "User", "id": 2, "name": "Adam", "age": 28],
["type": "User", "id": 3, "name": "Sarah", "age": 23]
]
importFirebase(data: data)
这不一定是最佳解决方案,但它应该会给您一个想法。
希望对你有所帮助,祝一切顺利!
我是 CosmicMind 的新手,对数据处理有疑问。
在CosmicMind CardTableView Sample中,数据是从Entity类型的SampleData中读取的。
问题 1:有什么方法可以将我的 Firebase 数据加载到实体中?如果是这样,该怎么做?看起来应该不难,因为已经 JSON 了。我正在使用 Swift 3.2
问题 2:有没有办法对实体进行模态化?
非常感谢!!
欢迎来到 CosmicMind :)
最简单的方法是创建一个导入函数,接收您的 JSON 数据并将键值对映射到实体中的属性。如果 Firebase 中有类型说明符,则可以将其设置为实体类型。我不使用 Firebase,所以我无法 100% 描述设置,但这里是您将要执行的操作的示例,假设 Firebase 为您提供了一个唯一 ID。
func importFirebase(data: [[String: Any]]) {
let graph = Graph()
let search = Search<Entity>(graph: graph).for(types: "User")
let users = search.sync()
var index = [Int: Entity]()
for user in users {
if let id = user["id"] as? Int {
index[id] = user
}
}
for json in data {
if let id = json["id"] as? Int {
var entity: Entity
if nil == index[id] {
entity = Entity(type: "User")
} else {
entity = index[id]!
}
for (k, v) in json {
entity[k] = v
}
}
}
graph.sync()
}
let data = [
["type": "User", "id": 1, "name": "Daniel", "age": 33],
["type": "User", "id": 2, "name": "Adam", "age": 28],
["type": "User", "id": 3, "name": "Sarah", "age": 23]
]
importFirebase(data: data)
这不一定是最佳解决方案,但它应该会给您一个想法。
希望对你有所帮助,祝一切顺利!