gpt4 book ai didi

java - 使用 firebase 实时数据库,我的条目约为 300 项。现在在 datasnapshot 中没有得到 firebase 的响应

转载 作者:行者123 更新时间:2023-12-02 05:08:54 24 4
gpt4 key购买 nike

我在 Android 应用中使用 Firebase 实时数据库。我在表中的条目约为 300。我无法从 Datasnapshot 中的 Firebase 获取数据。有时加载20分钟后就可以了。我如何快速访问我的数据和响应。它在 iOS 中运行良好且非常快,具有相同的数据库和相同的查询。

private void checkBookingInfo() throws Exception {

mDatabaseReference.child(FireBaseConstants.BOOKING_INFO_TABLE).limitToFirst(10).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {


if (dataSnapshot != null) {
countArrival = 0;
countDeparture = 0;

for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
//check arrivals date matches with today's date then increment counter
if (snapshot.hasChild(FireBaseConstants.ARRIVAL_DATE)) {
String currentDate = Utils.getCurrentDate();
String arrivalDate = snapshot.child(FireBaseConstants.ARRIVAL_DATE).getValue().toString();
String status = snapshot.child(FireBaseConstants.STATUS).getValue().toString();

if (currentDate.equalsIgnoreCase(arrivalDate) && !status.equalsIgnoreCase("Cancel")) {
countArrival++;
}
}
//check departure date matches with today's date then increment counter
if (snapshot.hasChild(FireBaseConstants.DEPARTURE_DATE)) {
String currentDate = Utils.getCurrentDate();
String departureDate = snapshot.child(FireBaseConstants.DEPARTURE_DATE).getValue().toString();
String status = snapshot.child(FireBaseConstants.STATUS).getValue().toString();
if (currentDate.equalsIgnoreCase(departureDate) && !status.equalsIgnoreCase("Cancel")) {
countDeparture++;
}
}
}
setValueInEditText();
} else {

}

}

@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("notme", "");
}
});
}

最佳答案

为了提高 Firebase 查询的性能,您可以在用于排序查询的字段上添加索引。喜欢

  {
"rules": {
"YOUR_NODE": {
".indexOn": ["FIELD1", "FIELD2"]
}
}
}

您可以找到帮助链接here

Firebase 还显示 here

Important: The onDataChange() method is called every time data is changed at the specified database reference, including changes to children. To limit the size of your snapshots, attach only at the highest level needed for watching changes. For example, attaching a listener to the root of your database is not recommended.

但是,即使未应用索引,20 分钟仍然很长,您需要检查源代码,UI 中可能存在其他问题,可能是数据即将到来,但未填充到 UI 中。

关于java - 使用 firebase 实时数据库,我的条目约为 300 项。现在在 datasnapshot 中没有得到 firebase 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56335472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com