问题标签 [firebase-realtime-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
314 浏览

firebase - firebase 通过内部连接进行 3 路数据绑定

我可以像这样设置 3 路数据绑定吗?

控制器:

看法:

这可以很好地显示所有内容,但是当我在视图中编辑某些内容时会引发安全错误:

我的安全规则如下所示:

有人知道有什么问题吗?

0 投票
0 回答
204 浏览

firebase - 删除firebase中的特定数据元素

我希望能够通过单击相应的按钮来删除特定的数据元素。我将数据连同相应的删除按钮一起打印在我的页面上ng-repeat。我的数据结构是这样的。 在此处输入图像描述

要删除,我相信我必须先访问该数据。我可以使用以下代码访问数据对象直到“内容”(在上面的数据树中),但不知何故我无法在此之后动态访问元素。

如果我的数据结构有误,我也想了解一下。

0 投票
1 回答
216 浏览

javascript - 如何在 Firebase 中构造数据?

我来自 MySQL 工作流程,现在我正在尝试在 Firebase 中做一些事情,我在构建数据时遇到了一些困境,因为我不知道如何查询它。

在下面的例子中我有一些users和一些comments,什么是找到的好方法

我正在考虑将这些信息添加给用户,例如:

但这似乎是多余的并且重复数据..

我需要找到一种方法来搜索与 相关的posts所有内容user:1,也许我需要创建另一个连接users和的对象posts??

有任何想法吗?

0 投票
1 回答
342 浏览

firebase - 如何在 Firebase 中有效地存储和引用长的唯一字符串

我想将链接存储在 Firebase 表中。我希望它们是独一无二的。这些链接也将被其他表引用,因此我不希望每次引用链接时都必须存储链接的整个长 URL 字符串。我很难找到一种方法来强制链接的唯一性,同时还使用相对较短的键来引用它们。

例如,给定以下架构:

如您所见,每条评论都必须包含其所属链接的长键。有没有一种在保持唯一性的同时缩短这些键的好方法?

0 投票
3 回答
3725 浏览

firebase - Firebase 如何保护数字数据免受用户操纵,例如。比赛成绩

我正在使用 Firebase 开发多人游戏。玩家得分在每场比赛结束后记录在 firebase 中,并且 playerTotalScore 字段也会更新为新的总分。我的问题:是否可以仅使用 firebase 安全规则来保护 playerTotalScore 字段免受用户任意操纵?如果是这样,怎么做?

我已经详细阅读了 firebase 网站上的 firebase 安全信息。虽然我知道可以在安全规则中实现一些复杂的逻辑(将数字增加一个给定的数量,例如 this gist,或者使字段仅插入(".write": "!data.exists()"),但在这种情况下,这些信息似乎都没有帮助。增量-only 规则是不够的,因为可以通过多次递增来操纵分数。仅插入似乎是 totalScore 的一个选项,因为每场比赛后都会更新。

更新

根据 Kato 的要求,这里是具体的用例。

我正在开发的游戏是一个问答游戏,玩家回答问题,实时显示玩家分数。

在游戏过程中,该特定游戏的分数在每个问题后通过以下语句更新:

游戏结束后,玩家的总得分(所有玩过的游戏)计算为totalScore=totalScore+gameScore,然后使用以下语句在 Firebase 中更新玩家的总得分:

Update2:加藤要求的数据结构

这是我目前的具体结构。这不是一成不变的,所以我愿意根据推荐的方法来改变它以保护数据。

用户(玩家)玩的每个游戏的分数存储在以下结构中

<gameId>是调用 firebase push() 方法后生成的 firebase 密钥。 <UserId>是 firebase simplelogin uid。

每个用户(玩家)的总得分(所有玩过的所有游戏的得分总和)存储在以下数据结构中

totalScore 的排行榜数据是使用 totalScore 作为优先级设置的,用于查询目的

score 和 totalScore 都是数字整数值。这就是我能想到的当前数据结构的所有细节。

0 投票
1 回答
595 浏览

android - 在 Firebase 中使用事务时,为什么 onChildChanged() 在 onComplete() 之前触发?

使用 Firebase for Android,我将以下数据结构用于具有有限数量插槽的聊天室:

为了让我的客户使用其中一个插槽(oneto three),我使用了此处提供的以下代码(JavaScript 版本)

经过一些测试,我发现这不起作用。我对以下两个解释它为什么不起作用的假设是正确的吗?

  1. runTransaction(...)(Android) 或transaction(...)(JavaScript) 中,您必须将可选参数fireLocalEvents(Android) 或applyLocally(JavaScript) 设置为false,否则您将收到来自事务的事件,尽管它可能不会成功。
  2. 即使fireLocalEvents(Android) 或applyLocally(JavaScript) 设置为,该引用上false的事件也会在您的事务成功返回之前触发。这是预期的行为吗?onChildChanged(...)onComplete(...)

对于这种特殊情况,这意味着在我知道我自己是最后一个空位 (in ChildEventListener.onChildChanged(...))之前,我将收到关于聊天室已满 (in) 的通知。Transaction.Handler.onComplete(...)

假设,如果房间已满...

  • 我在那里有一个插槽,执行了一些代码并启动了一些新的东西。
  • 而且我没有得到任何插槽,我只想从列表中隐藏房间(因为它不再可用)。

如果我想这样做,我必须将完整的逻辑移到ChildEventListener.onChildChanged(...),因为那是我首先接收事件的地方,对吧?否则,在我知道我是那里的最后一个位置之前,房间就会被隐藏起来。

有任何想法吗?

0 投票
1 回答
7320 浏览

android - 从 firebase 读取数据,并在 listview 中填充

我正在开发一个应用程序,我想在其中从我的 firebase 数据库中读取数据,并将其放入我的 listView 中。

我想要 3 种不同的阅读操作。

  1. 首次启动应用程序时,我想读取最近的 10 行。

  2. 当我到达 listView 的末尾时,我想再获得 10 行,从迄今为止读取的最旧的行开始。

  3. 当我拉到 listView 的顶部时,我想获取在现在显示为第一行的行之后生成的所有行。(这样可以理解吗……?)

注意:当我阅读列表视图的顶部和末尾时,我已经实现了侦听器,所以它只是我需要的 firebase-calls。

这应该怎么做?

0 投票
0 回答
1097 浏览

android - Firebase Android Development, Update ListView

First off, I'm sorry if this has been asked before.

So my partner and I are creating a Firebase linked app for android. The Firebase looks somewhat like this:

The problem is that in our app, the user logins into Firebase, then they are found in the users child, and then there is a ListView that is populated with only the projects that they are a part of (i.e. the projects' users contains the user that is logging in.)

The login works fine, and the ListView works fine when we hard code in the projects, but when we have it find the projects, it displays an empty list, because the data isn't returned before the ListView is created.

Here is the code we have so far: This is our Login Activity code:

This is our Project List Activity Code:

}

And lastly, here is our ListChangeNotifier Code:

}

I'm sorry to include so much code, I'm just not sure what people would need to see.

Thanks for the help!

EDIT:

Here's the code from Project List Fragment that deals with the adapter:

0 投票
2 回答
890 浏览

java - Firebase 简单聊天客户端未检索值

我正在尝试构建基于 firebase 的最简单的 android 聊天应用程序,我从他们的 android 聊天示例中获取了用于聊天的 firebase 列表适配器。并使用了我自己的模型类,但该死的东西不起作用。这里是类和日志:

消息模型类:

导入 java.util.Date;

这是适配器类:

}

最后是日志猫

0 投票
0 回答
1094 浏览

javascript - 如何在与元素 ID 匹配的特定键名之后遍历 firebase 数据库?

在下图中,我的日历中添加了 5 个事件,键的名称(例如 13No(代表 11 月 13 日))是我在循环时要搜索的内容。

当我单击删除按钮时,我想检查父 ID 并将其与数据库中的所有键名进行比较,然后当找到匹配项时,我希望从数据库中删除该键。由于我是 Firebase 的新手,我不确定如何遍历数据库,因此非常感谢您的帮助。

编辑:我将键的名称更改为与我要搜索的 ID 相同,以使其更容易,但我仍然无法让循环工作。

火力基地示例

这是应该执行删除的函数: