【发布时间】:2021-06-07 18:59:33
【问题描述】:
我有以下代码:
database.ref('users/' + userId + '/data/').once('value').then(function (snapshot) {
if (snapshot.exists()) {
console.log(snapshot.val());
dailySteps = snapshot.val();
}
else {
console.warn("No prior user data availible.");
}
}).catch(function (error) {
console.error(error);
});
每日步骤是一个包含 31 个元素的列表。当我尝试以下操作时
database.ref('users/' + userId).once('value').then(function (snapshot) { etc...
我得到的用户数据非常好,所以我知道一些事情:
A. 认证没问题,这不是数据库规则的问题
B. UserID 很好,所以这不是问题
C. Firebase JS SDK 很好,所以这不是问题
但是,当我尝试您在顶部看到的添加了确实存在的数据路径的代码时,我得到了一个空快照!我已经尝试了一切,使用 database.child 而不是 ref,使用 .once,使用 .get,但没有任何效果!发生了什么事,为什么我不能获取这些数据?我在 localhost 的命令行之外的 firebase 托管模拟器上运行它,以防万一它很重要。
【问题讨论】:
-
userId是如何初始化的? -
我正在使用 firebase 身份验证,所以它只是使用其中的用户 ID,你在想什么? @FrankvanPuffelen
-
我认为我们需要看看
userId是如何初始化的,因为这是最可能导致无法读取数据的原因。 -
好的,我下次在电脑前更新帖子。不过,我可以很好地读取电子邮件、姓名和个人资料图片等用户数据。用户 ID 通过 firebase.auth.currentuser().uid btw 访问
-
你怎么知道快照是空的?您是否收到错误和/或打印到控制台的内容?
标签: javascript firebase firebase-realtime-database