【发布时间】:2019-05-12 23:31:31
【问题描述】:
我正在将 Firebase 实时数据库转换为 Firebase Firestore 数据库,但找不到合适的参考来查询当前用户。
onAuthUserListener = (next, fallback) =>
this.auth.onAuthStateChanged(authUser => {
if (authUser) {
this.user(authUser.uid)
.once('value')
.then(snapshot => {
const dbUser = snapshot.val();
// default empty roles
if (!dbUser.roles) {
dbUser.roles = [];
}
// merge auth and db user
authUser = {
uid: authUser.uid,
email: authUser.email,
emailVerified: authUser.emailVerified,
providerData: authUser.providerData,
...dbUser,
};
next(authUser);
});
} else {
fallback();
}
});
最具体地说,once('value') 和 snapshot.val(); 的替代品是什么?
我以为
.onSnapshot(snapshot => {
const dbUser = snapshot.val();
...
【问题讨论】:
-
下面是
once('value'等价物的答案,但我不知道 `this.user(authUser.uid)` 是什么。 -
谢谢弗兰克。 `this.user(authUser.uid)` 只是我通过
context访问插件的方式。为你的回答干杯,我现在就试试。 -
我正在和你一样的问题上挣扎。你想通了吗?我不够聪明,无法从firebase文档飞跃到编写一些可以从firestore中获取用户的东西,该用户在身份验证上下文中具有与authUser相同的uid。你找到方法了吗?
标签: javascript firebase google-cloud-firestore