Быстрое хранение PKPass с помощью Firebase - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь сохранить PKPass с помощью Firebase, чтобы я не генерировал пропуск каждый раз, когда пользователь хочет добавить пропуск в программу или отправить пропуск. Я сохраняю pass.passURL в своей базе данных firebase, а затем снова загружаю его, когда пользователь хочет что-то сделать с проходом. Прямо сейчас все, что происходит, - это кошелек открывается, но пропуск не появляется. Это лучший способ сохранить PKPass

Функция сохранения:

func saveTicketIdToDB(pass: PKPass) {

    guard let uid = Auth.auth().currentUser?.uid else { return }

    guard let postId = post?.postId else { return }

    guard let paymentId = paymentId else { return }

    guard let passUrl = pass.passURL as? URL else { return }
    let passUrlString: String = passUrl.absoluteString

    let values = ["passUrl": passUrlString]

    let db = Firestore.firestore()
    db.collection("payments").document(postId).collection("purchases").document(paymentId).updateData(values) { (error) in

        if let error = error {
            print("There was an error", error.localizedDescription)
            return
        }

        print("Successfully saved pkpass into database.")
    }
}

Открытие в бумажнике:

guard let passUrlData = URL(string: passUrl) else { return }

if #available(iOS 10.0, *) {
   UIApplication.shared.open(passUrlData, options: [:], completionHandler: nil)
} else {
   UIApplication.shared.openURL(passUrlData)
}
...