【问题标题】:App recreates itself everytime I change a child value in firebase每次我在firebase中更改子值时,应用程序都会重新创建自己
【发布时间】:2017-08-26 10:45:06
【问题描述】:

我正面临一个非常令人沮丧的问题,如果您能在这里给我小费,我将不胜感激。我正在使用 firebase 数据库创建一个应用程序。问题是我有一个名为 (everyone) 的子节点;在(每个人)内部有 4 个具有值的子键 - 它看起来像这样:

everyone
|
|-name: jim
 -haircolor: black
 -height: 175cm
 -hobbies: none

现在(每个人)节点被我的应用程序中的所有其他活动使用,我使用 ValueEventListener 监听这个节点。

当我尝试编辑某个子子项时出现问题。例如,如果我想编辑(名称),编辑将导致我的应用程序一遍又一遍地重新创建自己。子孩子的值是在 firebase 控制台中编辑的,我对此没有任何问题;唯一的问题是我的应用程序主要活动的重新创建循环。我真的不知道原因,因为 LOG CAT 上没有出现任何内容,因为应用程序不会崩溃,它只会重新创建自己,给出以下内容:(从非活动上下文调用 startactivity)。

抱歉,我没有发布任何其他代码,因为文件太多,我不知道问题是由什么引起的。我预测当在其他活动的 ValueEventListener 中调用 onchildchanged 时,会发生一些事情。除此之外,我一无所知。

感谢您花时间阅读本文。

【问题讨论】:

    标签: android firebase


    【解决方案1】:

    当您更新每个节点中的值时,将调用附加到该节点的所有侦听器,因为侦听器是valueEventListener。您需要检查数据更改以查看哪个活动应该处理更改。 此外,我假设所有活动都在运行,即没有活动已完成。

    【讨论】:

    • 嗨,奥马尔。谢谢你。您能解释一下“您需要检查数据更改”是什么意思吗?你能给我一个简单的例子来理解你的意思吗?谢谢。
    • 好的,但请先解释一下您目前在 onDatachange 方法中所做的事情?哪个导致应用程序崩溃?或将代码添加到您的问题中以便更好地理解。
    • 好吧,基本上我使用 datasnapshot 获取子子项,然后使用 set text 方法将它们设置为 textviews((我所做的只是获取并设置值))。正如我所说的 Umar,我不知道问题出在哪里,而且我的代码文件太多,所以我不能在不知道哪个文件导致问题的情况下放置任何文件。
    • 这会导致您的应用崩溃?
    • 问题是当我更改子子项中的值时,它会重新创建自己并且不会崩溃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    相关资源
    最近更新 更多