因此,我开始学习Android,这是一名应届毕业生的同事,我在那儿实习,我建议我学习Firebase,因为它免费且易于使用。我正在尝试执行最基本的读取和写入操作,但是由于某些原因,我无法执行此操作。我搜索了许多不同的文章,但找不到原因。甚至说同事试图帮助我,但仍然...
我已连接到Firebase,并提供了所需的权限等。Firebase静态消息显示已连接一个应用程序。
我正在关注Firebase自己的文档,但其自己的代码在我的应用程序上不起作用。
说出的代码:
// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// This method is called once with the initial value and again
// whenever data at this location is updated.
String value = dataSnapshot.getValue(String.class);
Log.d(TAG, "Value is: " + value);// "TAG" shows red
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w(TAG, "Failed to read value.", error.toException());
}
});
我所缺少的东西可能真的很简单。但是就像我说的那样,我研究了很多文章。首先,我只想在数据库上写一些东西,然后从中读取一个字符串,然后在屏幕上打印出来。
编辑:我得到的编译器错误是:https://prnt.sc/kb7kcu(太长,无法粘贴为文本)
仿佛代码无法正常工作,我关注的Firebase文档给了编译器错误。我尝试过的文章中的其他代码也不会更新数据库或无法读取数据库。
答案 0 :(得分:0)
提示->粘贴此代码,并仔细查看数据作为键值对映射的结构。
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d(TAG, "dataSnapshot: " + String.valueOf(dataSnapshot));
for (DataSnapshot dataSnapshotItem : dataSnapshot.getChildren()) {
Log.d(TAG, "Inside: " + String.valueOf(dataSnapshotItem));
}
}
答案 1 :(得分:0)
这不是您在Firebase控制台中定义的规则,因此您无权读取和写入权限,对于权限,请按照以下步骤操作:
在选项卡菜单中,您可以看到“规则”选项卡,在“规则”选项卡中设置如下规则
{
"rules": {
".read": "auth == null",
".write": "auth == null"
}
}
检查插入或检索操作的工作。