[英]Firebase RTDB is not responding in Android app
目前我正在开发一个应用程序,它将在火车出发和火车到达车站时为您提供火车时间戳。 一切都设置好了,但是当用户尝试从 firebase DB 获取有关特定时间的火车的信息时,我的问题就出现了,firebase 只是没有反应......我试图记录所有内容,但日志是空的。 . 这是我的代码:
private void initDatabaseConnection() {
// Get a reference to your user
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("timestamps");
Query query = ref.orderByChild("departure").equalTo("8:30");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
TimestampModel trainTimestamp = dataSnapshot.getValue(TimestampModel.class);
Log.d("timestamp", trainTimestamp.getTrain()+"\n"+
trainTimestamp.getArrival()+"\n"+
trainTimestamp.getDeparture()+"\n"+
trainTimestamp.getRoute().getCityFrom()+"\n"+
trainTimestamp.getRoute().getCityTo()+"\n"+
trainTimestamp.getRoute().getDistance()+"\n"+
trainTimestamp.getRoute().getTravelTime()
);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d("timestamp", databaseError.getCode()+"\n"+
databaseError.getMessage()+"\n"+
databaseError.getDetails()+"\n");
}
});
}
这是正在连接到数据库的 function,并尝试获取节点,在我的情况下是 8:30 的特定出发字段...但是您如何查看日志在那里但是当应用程序运行时有空日志特定标签。
这是我对应用程序级别的依赖项:
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation platform('com.google.firebase:firebase-bom:26.3.0')
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-auth:20.0.1'
implementation 'com.google.android.gms:play-services-auth:19.0.0'
implementation 'com.google.firebase:firebase-database'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
对这个问题有什么建议吗?
当您对 Firebase 数据库执行查询时,可能会有多个结果。 所以快照包含这些结果的列表。 即使只有一个结果,快照也会包含一个结果的列表。
我最好的猜测是你没有处理结果是一个列表的事实,你可以通过循环dataSnapshot.getChildren()
来做到这一点:
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot resultsSnapshot) {
for (DataSnapshot dataSnapshot: resultsSnapshot.getChildren()) {
TimestampModel trainTimestamp = dataSnapshot.getValue(TimestampModel.class);
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.