我的应用将用户位置数据存储在Firebase Realtime Database
中。我打算做的是检索一些数据并在我的应用程序中处理它。我可以从Firebase DB中获取所需的数据(通过调试检查)。现在我想将数据存储在局部变量中。我能够存储除一个值之外的所有值(调试器将其显示为null,尽管它存在于datasnapshot
中。)。来自Firebase的数据采用UserDataLocation
对象形式,以下是相同的类:
UserDataLocation
课程:
public class UserLocationData {
String mobile, name, latitude, longitude, proximity, connection_limit, last_updated;
public UserLocationData() {
}
public UserLocationData(String mobile, String name, String latitude, String longitude, String proximity, String connection_limit, String last_updated) {
this.mobile = mobile;
this.name = name;
this.latitude = latitude;
this.longitude = longitude;
this.proximity = proximity;
this.connection_limit = connection_limit;
this.last_updated = last_updated;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
public String getProximity() {
return proximity;
}
public void setProximity(String proximity) {
this.proximity = proximity;
}
public String getConnection_limit() {
return connection_limit;
}
public void setConnection_limit(String connection_limit) {
this.connection_limit = connection_limit;
}
public String getLast_updated() {
return last_updated;
}
public void setLast_updated(String last_updated) {
this.last_updated = last_updated;
}
}
以下是我检索和存储数据的方法:
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child : dataSnapshot.getChildren()) {
userLocationData = child.getValue(UserLocationData.class);
String connectionKey = child.getKey();
if (!connectionKey.equals(currentUserMobile)) {
for (int count = 0; count <= Integer.parseInt(connections_limit); count++) {
**String last_updated = userLocationData.last_updated;** //this is showing null in debugger
Location connectionLocation = getLocationFromLatLng(userLocationData.latitude, userLocationData.longitude);
{......}
}
}
}
}
}
除String last_updated = userLocationData.last_updated;
之外的所有变量都有价值。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
我已经解决了我的问题。错误很小但很重要。实际上,我使用last updated
作为存储上次更新时间的密钥。问题在于这个密钥的格式。它应该是last_updated
或其他内容,但似乎firebase数据库认为spaces
的密钥无效。所以,我将我的密钥更改为last_updated
并解决了问题。
希望它有所帮助。