Я сохраняю токен в моей БД, который затем запускает облачную функцию, где в пути "stripe_customers/$currentUser/sources/$pushId/token/"
есть write
.
Текущий способ создания моего pushId
, я думаю, что он вызывает БД дважды, поэтому моя облачная функция вызывается дважды. Я думаю, что это проблема, но я не знаю, чтобы создать pushId
без вызова write
для DB
stripe.createToken(
cardToSave,
object:TokenCallback {
override fun onSuccess(token: Token?) {
val currentUser = FirebaseAuth.getInstance().currentUser?.uid
val database = FirebaseDatabase.getInstance()
val pushId = database.getReference("stripe_customers/$currentUser/sources/").push().key
val ref = database.getReference("stripe_customers/$currentUser/sources/$pushId/token/")
//save the token id from the "token" object we received from Stripe
ref.setValue(token?.id)
.addOnSuccessListener {
Log.d(TAG, "Added Stripe Token to database successfully")
}
.addOnFailureListener {
Log.d(TAG, "Failed to add Token to database")
}
}
...