在Android上使用Firebase进行基本读写

时间:2018-07-26 08:46:49

标签: java android firebase firebase-realtime-database

因此,我开始学习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文档给了编译器错误。我尝试过的文章中的其他代码也不会更新数据库或无法读取数据库。

2 个答案:

答案 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控制台中定义的规则,因此您无权读取和写入权限,对于权限,请按照以下步骤操作:

  • 转到Firebase控制台
  • 选择数据库,然后单击实时数据库
  • 在选项卡菜单中,您可以看到“规则”选项卡,在“规则”选项卡中设置如下规则

    {
      "rules": {
         ".read": "auth == null",
         ".write": "auth == null"
        }
    }
    

检查插入或检索操作的工作。