Как мне добавить идентификатор документа, который я только что добавил, в свою базу данных firestore, к указанному документу?
Я хочу сделать это так, чтобы, когда пользователь извлекал объект "езды" ирешив забронировать его, я могу знать, какую конкретную поездку они забронировали.
Проблема, с которой я сталкиваюсь, заключается в том, что вы не можете получить идентификатор документа до тех пор, пока он не будет создан, поэтому единственный способ добавитьДля указанного документа необходимо создать документ, прочитать его идентификатор, а затем отредактировать документ для добавления в идентификатор.В масштабе это создаст вдвое больше обращений к серверу, чем нужно.
Есть ли стандартный способ сделать это?Или простое решение, чтобы узнать, на кого «ездить» пользователь забронировал и отредактировать его соответственно в базе данных?
struct Ride {
var availableSeats: Int
var carType: String
var dateCreated: Timestamp
var ID: String // How do I implement this?
}
func createRide(ride: Ride, completion: @escaping(_ rideID: String?, _ error: Error?) -> Void) {
// Firebase setup
settings.areTimestampsInSnapshotsEnabled = true
db.settings = settings
// Add a new document with a generated ID
var ref: DocumentReference? = nil
ref = db.collection("rides").addDocument(data: [
"availableSeats": ride.availableSeats,
"carType": ride.carType,
"dateCreated": ride.dateCreated,
"ID": ride.ID,
]) { err in
if let err = err {
print("Error adding ride: \(err)")
completion(nil, err)
} else {
print("Ride added with ID: \(ref!.documentID)")
completion(ref?.documentID, nil)
// I'd currently have to use this `ref?.documentID` and edit this document immediately after creating. 2 calls to the database.
}
}
}