Продолжайте работать над моим приложением для заказа ресторанов!Я пытаюсь получить уникальный ключ AutoID для добавления к массиву, чтобы я мог отслеживать заказы клиентов, но по какой-то причине Firebase продолжал отправлять обратно несколько копий ключа, и это следует шаблону:
Первый запрос- отправляет обратно одну копию ключа - что хорошо.Второй запрос - отправляет обратно две копии одного и того же ключа. Третий запрос - отправляет обратно три копии одного и того же ключа. Так далее и так далее!
Например, когда я выполняю печать (snapshot.key) по 5-му запросу, он печатает -LPx-9X6EYwjFv2IHFMS -LPx-9X6EYwjFv2IHFMS -LPx-9X6EYwjFv2IHFMS -LPx-9X6EYwjFv2IHFMS -LPx-9X6EYwjFv2IHFMS * вместо 1005 * * 1006Это заставляет меня думать, что именно Firebase отправляет несколько копий обратно.
Это ошибка Firebase или мне следует использовать другой метод для получения ключа (ID) последнего добавленного дочернего элемента?
Спасибо
var customerRequestedItem : String = []
@IBAction func requestConfirmButton(_ sender: Any) {
let ref = Database.database().reference()
ref.child("Drink").childByAutoId().setValue(["CustomerID" : customerID, "RequestItem" : requestingItem, "Timestamp" : [".sv": "timestamp"]]){
(error:Error?, ref:DatabaseReference) in
if let error = error {
let alert = UIAlertController(title: "Ooops", message: "Request Not Received", preferredStyle: UIAlertController.Style.alert)
alert.addAction(UIAlertAction(title: "Try Again", style: UIAlertAction.Style.default, handler: nil))
self.present(alert, animated: true, completion: nil)
} else {
let customerRef = Database.database().reference(withPath: "Drink")
customerRef.queryOrderedByValue().queryLimited(toLast: 1).observe(.childAdded) { snapshot in
customerRequestedItem.append("\(snapshot.key)")
print (snapshot.key)
}