我试图从Firebase数据库中读取数据,我已经到处阅读和查找,但我已经走到了死胡同。
这就是我所做的一切。
依赖项:
实现'com.google.firebase: Firebase存储: 9.2.1'
实现'com.google.firebase:firebase数据库:9.2。1'
实现'com.google.firebase:firebase授权:9.2。1'
实现'com.google.火基:火基核心:9.2。1'
中文版本:15
DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
然后在一个Button onClark方法中,我把监听器:
mDatabase.child("List").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String savedData = dataSnapshot.getValue(String.class);
Log.d(TAG, "snapshot: " + savedData);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, "Error");
}
});
下面是数据库的介绍。
会感激你的投入。
您正试图读取List
下的String
值。但是在列表下面没有字符串值,而是有一个对象列表。要获得实际值,您需要在代码中导航JSON结构。
类似的东西:
DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("List").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot tierSnapshot: dataSnapshot.getChildren()) {
Log.d(TAG, tierSnapshot.getKey(); // "Tier 1", "Tier 1 B"
for (DataSnapshot secondSnapshot: tierSnapshot.getChildren()) {
Log.d(TAG, secondSnapshot.getKey(); // "Tier 2", "Tier 2 B"
String str = secondSnapshot.getValue(String.class);
Log.d(TAG, str); // null, "2 B"
Long num = secondSnapshot.getValue(long.class);
Log.d(TAG, num); // 2, null
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.w(TAG, "Error", databaseError);
}
});
另外需要注意的是,您的值是不同类型的,第一个是数字2
,而第二个是字符串"2 B"
。因此有两个getValue()
调用,以获取特定类型。您也可以只执行第二个napshot.getValue()
,并像往常一样处理结果对象(例如调用toString()
)。
我已经花了几个小时阅读产品分支中的0和1。请在Firebase数据库有经验的人帮助我:(
因此,我尝试拍摄数据库的快照,并添加带有子项的数组字符串中的项。 我的set和get java文件如下所示 但是,当我的程序到达dataQuery方法并尝试获取和设置名称和成分时,它会崩溃。有人能解释一下我做错了什么,以及是否有更好的方法来使用数据库快照来做到这一点吗? 进程:in.tvac.akshayejh.firebasesearch,PID:24798java.lang.NullPoint
我正在尝试读取我的Flutter应用程序中的firebase实时数据库中的数据,并将其分配给模型类,但是,我在控制台中得到了以下错误。 下面是我到目前为止所做的代码 员工类别 我不知道我做错了什么,请帮我解决这个问题
一切正常,但DatabaseReference无法获取数据,这就像是忽略了我的代码运行,就像我的internet无法运行一样,请帮助我,我是这个社区的新手,下面是我的代码和图片。 以前它是工作的,但由于我只是更改了一些代码,使只有currentVersion>=vCode,这样即使数据库中的值是 firebase数据库映像 mainactivity.java manifest.xml 依赖关系
主要内容:示例在本章中,我们将演示如何读取Firebase数据。 下图显示了想要读取的数据 - 可以使用方法来检索数据。 此方法将事件类型作为“值”,然后检索数据的快照。 当我们将方法添加到快照时,将获得数据的JavaScript表示形式。 示例 下面来看看一个例子。 如果运行下面的代码,浏览器的控制台将显示以下数据。 在下一章中,我们将学习可用于读取数据的其他事件类型。
我遇到的问题是,使用下面显示的以下Firebase规则,经过身份验证的用户可以成功写入数据库,但无法从中读取,因为我在控制台中获得了“拒绝权限”。当我将读取和写入设置为true(公共)时,读取和写入功能都正常工作。我从数据库中读取的代码也显示如下: 规则: 示例数据库: 以下是确切的错误: