Импорт данных JSON или CSV в Firestore с помощью Swift - PullRequest
0 голосов
/ 30 ноября 2018

Похоже, что до сих пор нет способа импортировать файлы JSON или CSV напрямую в базу данных Firestore.Многие из предложений относятся к приложениям на основе JavaScript, которые плохо переводятся в Swift.У кого-нибудь есть хорошее решение Swift для добавления данных в базу данных Firestore с использованием JSON / CSV?

//example json
[
  {
    "name": "Stone Cove Marina Inc",
    "email": "NOT IN SAMPLE",
    "category": "Docks",
    "category2": "Marinas",
    "category3": "Dock Builders",
    "address": "134 Salt Pond Rd",
    "city": "Wakefield",
    "state": "RI",
    "zip": 2879,
    "phone": "(401) 783-8990",
    "website": "http://stonecovemarinari.com"
  },
  {
    "name": "Bluehaven Homes",
    "email": "NOT IN SAMPLE",
    "category": "General Contractors",
    "category2": "Home Builders",
    "category3": "",
    "address": "5701 Time Sq",
    "city": "Amarillo",
    "state": "TX",
    "zip": 79119,
    "phone": "(806) 452-2545",
    "website": "http://www.bluehavenhomes.com/"
  }
]

//here is the database structure
//collection is "businesses"; each "business" gets a document id; within each document id set the data

database.collection("businesses").document().setData(/*data here*/)

1 Ответ

0 голосов
/ 30 ноября 2018

Можно попробовать

let str = """

      [
      {
        "name": "Stone Cove Marina Inc",
        "email": "NOT IN SAMPLE",
        "category": "Docks",
        "category2": "Marinas",
        "category3": "Dock Builders",
        "address": "134 Salt Pond Rd",
        "city": "Wakefield",
        "state": "RI",
        "zip": 2879,
        "phone": "(401) 783-8990",
        "website": "http://stonecovemarinari.com"
      },
      {
        "name": "Bluehaven Homes",
        "email": "NOT IN SAMPLE",
        "category": "General Contractors",
        "category2": "Home Builders",
        "category3": "",
        "address": "5701 Time Sq",
        "city": "Amarillo",
        "state": "TX",
        "zip": 79119,
        "phone": "(806) 452-2545",
        "website": "http://www.bluehavenhomes.com/"
      }
    ]

"""

do {
    let json = try JSONSerialization.jsonObject(with:str.data(using:.utf8)!, options: []) as! [[String: Any]]
    for var i in 0...json.count - 1
    {
      database.collection("businesses").document().setData(json[i])
    }
} catch  {
    print(error)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...