gpt4 book ai didi

javascript - Firestore 快照未正确更新

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

我想知道如果该函数再次运行,是否正在刷新 Firestore 文档快照。

在这里,我试图读取返回 bool 值的“事件”属性。

不幸的是,如果我手动将文档中的值更改为“false”,读数仍然显示“true”,即使在重新加载(并且应该重新运行函数)之后也是如此。

// Check if user is logged in
auth.onAuthStateChanged(user => {
if (user) {
findSubscription(user);
} else {
console.log('logged out')
}
})

const findSubscription = (user) => {

// Get document
db.collection('stripe_customers')
.doc(user.uid)
.collection('subscription_info')
.doc('subscription_object')
.get()
.then((doc) => {

// Get number of keys in document
const numberOfKeys = Object.keys(doc.data()).length;

// Check if numverOfKeys is > 0 (it is not if the user has never had a subscription before)
if (numberOfKeys !== 0) {

// Get subscription status
const subscriptionStatus = doc.data().subscription.plan.active;
console.log(subscriptionStatus);

偶尔我会收到以下控制台日志。

"XMLHttpRequest cannot load ('google api url') due to access control checks."

我的数据库仍处于测试的公共(public)模式,所以我不太确定这是怎么回事。

最佳答案

您需要调用 onSnapshot() 而不是 get() ( https://firebase.google.com/docs/firestore/query-data/listen )

let unsubscribe = null;

const addSubscription = (user) => {
// Subscribe to document updates
// (called immediately & every subsequent change)
unsubscribe = db.collection('stripe_customers')
.doc(user.uid)
.collection('subscription_info')
.doc('subscription_object')
.onSnapshot((doc) => { ... })
}

关于javascript - Firestore 快照未正确更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58044471/

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