目前,以下是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数据库中。我需要保持更改的值,就像按下按钮时一样。所以我想读取节点中的特定数据,如果它正在工作,那么设置值&#34;工作&#34;别的&#34;不工作&#34;。我希望这会澄清我的疑问。
答案 0 :(得分:0)
一次读取数据
“在某些情况下,调用一次然后立即删除回调可能很有用。我们已经创建了一个辅助函数来简化:”
https://firebase.google.com/docs/database/admin/retrieve-data#pln