问题标签 [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 投票
2 回答
7668 浏览

android - 是否可以查询不等于指定条件的数据?

我正在为我的 listview (android) 获取用户列表,我使用 firebaselistadapter 来备份我的 listview,我想显示除我之外的用户数据。就像一个 sql 查询 Select something from usertable where id!=userid;

我想获取所有其他用户数据,

0 投票
4 回答
50655 浏览

android - 如何从android中的firebase数据库中检索特定节点

我正在尝试在我的 android 应用程序中使用 Firebase。我正在关注保存检索的文档,但是教程中使用的示例数据库(龙)与我的数据库具有不同的结构。

这是我将数据推送到 firebase 的代码

像这样创建数据库格式

我想从 firebase 检索数据,这样,如果我在我的应用程序搜索框中输入“全名”,它应该检索该特定节点,以便我可以在 Listview 中填充该信息。

这就是我试图检索的方式,

但它返回所有节点,

我如何检索特定节点,以便如果我输入 fullName = mast,它应该只检索具有该节点中所有字段的第二个节点。

0 投票
2 回答
748 浏览

android - 如果之前在本地提交,Firebase 事务不会远程中止

我正在构建一个 Android 应用程序,其中多个用户可以访问、修改和删除同一个项目,并且我正在使用 Firebase 同步所有设备。为了跟踪更新,该项目具有时间戳。我编写了一个事务,以便当我尝试删除该项目时,它会检查我的副本的时间戳是否早于远程副本:在这种情况下,事务中止并且该项目不会被删除。

这是我的问题:

  1. 我的设备离线
  2. 我成功删除了该项目
  3. 另一个用户修改远程数据库上的项目
  4. 我的设备上线并传播他的删除

我认为它会远程中止,因为远程时间戳更新。如果我只能根据本地数据中止决定,我真的看不到中止功能的意义......

我应该如何在 Firebase 中处理这些类型的冲突?

- 更新

这是我用来删除项目的代码。如果另一个用户在本地删除后远程更改了项目,它应该中止。

请注意,我使用itemRef.removeValue()而不是mutableData.setValue(null)因为第二个似乎不起作用。

0 投票
1 回答
1747 浏览

database - Firebase 中有多少条记录/行/节点?

我正在创建一个应用程序,将用户存储在他们想要交付的所有邮政编码/邮政编码下。结构如下所示:

该结构的原因是为了轻松获取所有发送到某个邮政编码的用户。

如果所有用户都申请了 500 个邮政编码,并且应用程序有大约 1000 个用户,那么它可能会变成很多记录:

Firebase 会轻松处理数据存储中的这么多记录,还是我应该考虑不同的方法/解决方案?你觉得呢?你有没有什么想法?

亲切的问候, 埃利亚斯

0 投票
2 回答
1186 浏览

firebase - 在 Firebase SDK for Java 中 createUser() 不返回 uid

我试图找出一种干净简单的方法来获取使用 Java SDK 时uid调用的结果。createUser()这在使用 Javascript SDK 时很容易做到(例如,这个问题/答案)。我还在Firebase iOS API 的上下文中看到了 Stackoverflow 上提出的问题,这显然不是那么容易。我的问题是如何使用 Firebase Java SDK 来做到这一点。具体来说,我的用例与 iOS 相关问题中的用例相同,即允许管理员用户创建用户帐户(电子邮件/密码身份验证),并以 uid 作为密钥将有关创建用户的其他信息存储在 Firebase 中。了解和使用 uid 作为密钥是必不可少的,因为它是安全规则的基础。

我已经看到了一些建议的解决方案,它们都涉及在创建新用户帐户后要执行的一些程序。这些是

无论哪种方式,我都有一个复杂的解决方案,其中包含多个异步回调来处理使用 Javascript API 时微不足道的问题。

因此,我有三个具体问题:

  1. 目前有比我上面列出的两种更好的方法吗?
  2. 如果我使用第二种方法并以新创建的用户身份登录,那是否会覆盖管理员令牌(即注销创建用户的管理员),这反过来意味着新的安全规则适用?
  3. 是否有任何期望 Android 和 Java SDK 将很快升级,以便createUser()API 与 Javascript 版本相同?

更新:深入挖掘并进行一些实验,我找到了问题的答案。事实证明,Firebase 提供的 API 文档已过时和/或不一致。

关于Q1:根据createUser() 的 Javadoc,唯一可用的回调处理程序是 Firebase.ResultHandler. 但是根据变更日志API 参考文档和有关创建用户帐户的文档,Firebase.ValueResultHandler也可以使用 a。这提供了对 UID 的直接访问

关于 Q2:答案是肯定的。对新创建的用户帐户进行身份验证会导致替换auth令牌。

关于 Q3:真正的问题应该是“Firebase 人员何时会更新 Javadoc?” 或者更好的问题是“为什么发布新版本的 SDK 时没有更新和准确的文档?”

0 投票
2 回答
34303 浏览

java - 在 Firebase 中自动增加一个值

如何从 Android 客户端自动增加存储在 Firebase 中的值?

目前:我声明int id = 1. 当我增加时,我看到值 2、3 等被存储。没关系,但是当我重新运行项目时,id再次设置为 1。

我希望它表现得像一个静态变量,所以我可以创建一个从 1 到无穷大的 id 而无需重置。

更新失败

我使用以下内容将 Firebase 引用和一个字符串传递给函数 incrementCounter。

现在我尝试 public void incrementCounter(Firebase publref,String my_msg)在 oncomplete 方法中使用传递的引用和字符串,但它给了我一个错误。

更新已解决

变量 msg_id 是从 push 中随机生成的 id。

0 投票
0 回答
60 浏览

android - 为什么 OnComplete 会召回课堂活动?Firebase 安卓

每次我使用事务时,当它调用OnComplete. 该OnComplete方法再次调用我的全班活动。

有人可以解释吗?这是代码:

0 投票
1 回答
487 浏览

android - Android 上 Firebase 磁盘持久性中的错误?只能推送30条新记录

在 Android (Firebase SDK 2.2.2) 上测试磁盘持久性的可靠性时,我遇到了一些限制。

启用飞行模式并在添加每个新对象并更新值后重新启动(强制关闭)一次应用程序:

  1. 在最旧的消失之后,我最多只能推送 30 个新对象。
  2. 我只能更新现有对象 1-5 次(随机变化)。然后在应用程序重新启动后,对象值始终重置为最后一次成功更新的值。

我使用自己的测试应用程序以及Firebase.getDefaultConfig().enablePersistence();添加到它的应用程序类的 Firebase AndroidChat 示例体验了这一点。

这些是磁盘持久性缓存的一般限制还是可能存在其他问题?

0 投票
8 回答
129775 浏览

ios - MongoDB 与 Firebase

MongoDB 与 Firebase

与 MongoDB 相比,使用 Firebase 有哪些量化优势?(不是意见)

我知道 Firebase 是一个基于云的服务,有自己的 API,但我觉得从长远来看,Mongo 可能会给我更大的控制权。

0 投票
4 回答
20174 浏览

android - How to check if a child exists in firebase?

I have a firebase that has a node called users. The user gives a username and I want to check to see if that username already exists as a child of the users node. This is the code I am currently trying. The platform is android.

This code is not working, it always goes to the else, even if the child with the given username does not exist. What to do?