Firebase 是否在给定路径下发送所有数据?
Does Firebase send ALL the data under a given path?
我对 Firebase 自动获取了多少数据有点困惑,而且我很难对数据进行建模。
据我了解,经过身份验证的用户 ID 与路径进行比较;如果密钥丢失,则路径不可访问。此外,一旦路径被调用,其中的所有数据都会被访问。
例如,获取 /cart/<$uid>/<item>
还将包括 $uid1、$uid、$uid3 ... $uidN 等。因此,如果我要将所有数据嵌套在 /<$uid>
下,喜欢:
/<$uid>/cart
/<$uid>/orders
/<$uid>/transactions
这是否意味着获取 /<$uid>/cart
也 returns 所有其他密钥?如果我只调用 <$uid>
怎么办?
如果结构首先由 cart/
或 orders/
代替,这是否意味着获取所有用户的所有订单?
换句话说,当用户登录时,我想检索(使用其中一个"schemas")购物车的内容:
// Fires onAuthStateChanged()
firebaseListener(function authStateChange(loggedIn, user) {
if (store) {
if (user) {
store.dispatch('getShoppingCart', { uid: user.uid, currentCart: store.getters.cartItemList });
store.dispatch('setUser', user);
}
}
})
getShoppingCart
然后运行类似于:
let ref = db.ref('/cart/' + store.state.uid + '/')
ref.on('value', (snapshot) => {
store.cart.concat(snapshot)
})
当用户登录时,您正在检索该用户的信息,因此当您使用 uid
时,您正在检索该登录用户的 ID。
当您使用此 ref('/cart/' + store.state.uid + '/')
时,它将首先转到 cart
节点,然后是该用户的 uid
,而不是购物车下的所有用户 ID。
也可以使用once('value').then(function(snapshot) {
,只读取一次数据,不会再次触发
我对 Firebase 自动获取了多少数据有点困惑,而且我很难对数据进行建模。
据我了解,经过身份验证的用户 ID 与路径进行比较;如果密钥丢失,则路径不可访问。此外,一旦路径被调用,其中的所有数据都会被访问。
例如,获取 /cart/<$uid>/<item>
还将包括 $uid1、$uid、$uid3 ... $uidN 等。因此,如果我要将所有数据嵌套在 /<$uid>
下,喜欢:
/<$uid>/cart
/<$uid>/orders
/<$uid>/transactions
这是否意味着获取 /<$uid>/cart
也 returns 所有其他密钥?如果我只调用 <$uid>
怎么办?
如果结构首先由 cart/
或 orders/
代替,这是否意味着获取所有用户的所有订单?
换句话说,当用户登录时,我想检索(使用其中一个"schemas")购物车的内容:
// Fires onAuthStateChanged()
firebaseListener(function authStateChange(loggedIn, user) {
if (store) {
if (user) {
store.dispatch('getShoppingCart', { uid: user.uid, currentCart: store.getters.cartItemList });
store.dispatch('setUser', user);
}
}
})
getShoppingCart
然后运行类似于:
let ref = db.ref('/cart/' + store.state.uid + '/')
ref.on('value', (snapshot) => {
store.cart.concat(snapshot)
})
当用户登录时,您正在检索该用户的信息,因此当您使用 uid
时,您正在检索该登录用户的 ID。
当您使用此 ref('/cart/' + store.state.uid + '/')
时,它将首先转到 cart
节点,然后是该用户的 uid
,而不是购物车下的所有用户 ID。
也可以使用once('value').then(function(snapshot) {
,只读取一次数据,不会再次触发