Как записать данные в Firebase без переопределения - PullRequest
0 голосов
/ 13 июня 2019
let value = categoriessegment.titleForSegment(at: categoriessegment.selectedSegmentIndex)
let data = ["price":pricetextfield.text,"Discount":Discounttextfield.text,"Category":value,"Description":descriptiontextfield.text];
// ref.child(currentdate).setValue(data)
ref.child(currentdate).updateChildValues(data as [AnyHashable : Any])

1 Ответ

0 голосов
/ 13 июня 2019

В Firebase SDK нет способа добавлять данные, если они уже есть, updateChildValues Обновлять предыдущие значения или вставлять новые. Чтобы проверить, имеются ли уже данные, сначала нужно получить предыдущие данные, а затем проверить и принять решение. Как

   Database.database().reference().observeSingleEvent(of: DataEventType.value, with: { (snapshot) -> Void in
            if (snapshot.value != nil) {
                 // it means data already present
             } 
        })

У нас есть еще одна возможность разрешить / запретить перезапись данных с помощью правил Firebase, например

{
  "rules": {    
    "your_node": {
        ".write": "data.exists()"   /// or ".write": "!data.exists()"  if you want to restrict overwrite
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...