Я играл с полосой и хотел бы узнать, как получить эфемерные ключи следующим образом:
Back-end:
//Stripe API requirement for payment
exports.stripeEphemeralKey = functions.https.onCall((data, context) => {
const uid = context.auth.uid;
//Get values
admin.database().ref().child("users").child(uid)
.on("value", (snapshot) =>{
//Get user data
let user = snapshot.val()
//Log data
console.log("Create ephemeral key for:")
console.log(user)
//Create ephemeral key
stripe.ephemeralKeys.create(
{customer: user.customerid },
{stripe_version: '2018-11-08'}
)
.then((key) => {
console.log(key)
console.log("Succesful path. Ephemeral created.")
return "Testing"
})
.catch((err) => {
console.log("Unsuccesful path. Ephemeral not created.")
console.log(err)
return {
valid: false,
data: "Error creating Stripe key"
}
})
})
})
На стороне клиента:
functions.httpsCallable("stripeEphemeralKey").call(["text": "Testing"]) { (result, error) in
print(result?.data)
}
Я проверил этот код, заменив тело stripeEphemeralKey на простую строку «Testing», и это прекрасно возвращается.Но с помощью приведенного выше кода я просто возвращаю Optional ().
Для тестирования я добавил множество консольных журналов.Журналы Firebase показывают, что путь выполнения достигает «Успешного пути. Эфемерный создан».журнал, и, кроме того, я действительно вижу эфемерный ключ, который я получаю от полосы.
Итак, как правильно получить эфемерный ключ в Swift для iOS, используя функцию onCall Firebase?
Бэкэнд делает то, что должен, но я не могу получитьответ обратно.
Спасибо.