【问题标题】:Android Firebase Database : Single data fetch without event listenerAndroid Firebase 数据库:没有事件监听器的单一数据获取
【发布时间】:2017-03-30 15:15:04
【问题描述】:

现在,以下是我在 Firebase 数据库控制台中的数据库层次结构。

我正在使用以下代码将数据输入到 firebase 数据库中。

public void createRecordInDB(PlaceListItem placeListItem)
    {
        mDB= FirebaseDatabase.getInstance().getReference();
        mListItemRef = mDB.child("Places");

        for(int i = 0; i < placeListItem.getResults().size(); i++) {
            // Create new List Item  at /listItem
            String placeId = placeListItem.getResults().get(i).getPlaceId().toString();
            String key = placeId;
            PlaceDBModel placeDBModel = new PlaceDBModel();
            placeDBModel.setPlaceName(placeListItem.getResults().get(i).getName());
            placeDBModel.setVicinity(placeListItem.getResults().get(i).getVicinity());
            placeDBModel.setLattitude(placeListItem.getResults().get(i).getGeometry().getLocation().getLat().toString());
            placeDBModel.setLongitude(placeListItem.getResults().get(i).getGeometry().getLocation().getLng().toString());
            placeDBModel.setPlaceID(placeId);
            if(isItWorking(key))
                placeDBModel.setWorkingOrNot("Working");
            else
                placeDBModel.setWorkingOrNot("Not Working");
            HashMap<String, Object> result = new HashMap<>();
            result.put(key, placeDBModel);
            mListItemRef.updateChildren(result);

        }

当我第一次从 web 服务加载数据时,我只需将所有数据输入到 firebase 数据库中。现在在我的应用程序的一个屏幕中(单击按钮),我可以更新特定节点中的一些数据。现在,当我再次返回上一个屏幕并从 Web API 加载数据时,它会将所有数据覆盖到 firebase 数据库中。我需要保持更改的值,就像单击按钮时一样。所以我想读取节点中的特定数据,如果它正在工作,则设置值“工作”,否则设置“不工作”。我希望这能澄清我的疑问。

【问题讨论】:

  • 请分享您的整个活动代码。
  • 您在问题中包含了 JSON 树的图片。请将其替换为作为文本的实际 JSON,您可以通过单击 Firebase 数据库控制台中的导出 JSON 链接轻松获取该文本。将 JSON 作为文本使其可搜索,让我们可以轻松地使用它来测试您的实际数据并在我们的答案中使用它,一般来说这只是一件好事。

标签: android firebase firebase-realtime-database


【解决方案1】:

一次读取数据

“在某些情况下,调用一次回调然后立即删除可能很有用。我们创建了一个辅助函数来简化此操作:”

https://firebase.google.com/docs/database/admin/retrieve-data#pln

【讨论】:

    猜你喜欢
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 2018-08-14
    • 1970-01-01
    相关资源
    最近更新 更多