gpt4 book ai didi

ios - Firebase 客户端 UID 和 Firebase 函数 UID 不匹配

转载 作者:行者123 更新时间:2023-11-30 11:37:15 25 4
gpt4 key购买 nike

我正在尝试将 Stripe 与 Firebase 结合使用,并按照链接的 Firestripe example project 进行操作。 。当用户注册该应用时,Firebase 中会触发以下函数,该函数会在 Stripe 中创建一个 Customer 对象。

exports.createStripeCustomer = functions.auth.user().onCreate(event => {
const data = event.data;
return stripe.customers.create({
}).then(customer => {
return admin.database().ref(`/stripe_customers/${data.uid}/customer_id`).set(customer.id);
});
});

上述函数中的最后一行应该将 Stripe 客户 ID 作为 Firebase UID 的子项写入数据库中,并且成功完成。

现在在客户端(iOS - Swift)尝试通过使用以下命令获取 UID 来写入同一经过身份验证的用户:

let userID = Auth.auth().currentUser!.uid
Database.database().reference(fromURL: "https://REDACTED.firebaseio.com/").child("stripe_customers").child(uid).child("sources").setValue([
"token": token.tokenId,
])

它在 /stripe_customers/ 下创建了一个完全不同的子项,这意味着 UID 不匹配...如何继续从客户端获取用户的真实UID?或者我做错了什么?任何帮助或见解将不胜感激。

最佳答案

您在第一个代码示例中所做的是将数据存储在 Stripe 客户 ID 下,而在第二个代码示例中,您尝试根据您的 Firebase UID 检索数据。

您想要做的是存储以您的 Firebase UID 命名的用户对象,然后将您的 Stripe ID 存储在子对象中。最后,查询您的 Firebase UID 对象而不是其 Stripe ID 子对象。

此外,我看不到您使用 let userID = Auth.auth().currentUser!.uid您查询中的任何位置。如果您声明的常量未在示例中使用,最好将其省略。

如果您需要更多帮助,请告诉我。

此外,请查看 Firebase 的新 Cloud Firestore。它仍处于测试阶段,但与 Firebase 实时数据库相比,它非常强大。

关于ios - Firebase 客户端 UID 和 Firebase 函数 UID 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49615534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com