基本Firebase/Java读/写

基本Firebase/Java读/写,java,android,firebase,Java,Android,Firebase,我现在觉得自己相当愚蠢。我以前做过相当多的Android Studio/Java/Firebase编码,对它非常熟悉。在休息了一段时间后,我刚刚回到它,我已经将所有内容更新到最新版本,我只是无法让我的测试应用程序与数据库对话 我创建了一个新的Firebase项目,下载了google服务文件,使用了Android Studio assistant(它告诉我我已连接),并使用了文档中简单的读/写“hello world”代码 代码运行时,我在日志窗口中获得了正确的“读取”输出,但在Firebase控

我现在觉得自己相当愚蠢。我以前做过相当多的Android Studio/Java/Firebase编码,对它非常熟悉。在休息了一段时间后,我刚刚回到它,我已经将所有内容更新到最新版本,我只是无法让我的测试应用程序与数据库对话

我创建了一个新的Firebase项目,下载了google服务文件,使用了Android Studio assistant(它告诉我我已连接),并使用了文档中简单的读/写“hello world”代码


代码运行时,我在日志窗口中获得了正确的“读取”输出,但在Firebase控制台上看不到数据。如果我只运行“read”代码,我什么也得不到,所以“write”只在数据库引用似乎在范围内时才有效

我几乎没有什么东西可以改变了,所以我对一些本该如此简单的事情感到非常沮丧——我很可能正在做一些愚蠢的事情

任何关于为什么会发生这种情况的想法都将不胜感激

Android Studio 3.2.1、Firebase libs 16.0.4、SDK版本28、google services 4.2.0

代码基本上是直接从文档中提取的

蒂亚


基本上你做对了

但是请记住,
FirebaseDatabase.getInstance().getReference()
表示数据库的根

所以你可能想试试
myRef.child(“sample_key”).setValue(“sample_value”)

这将在数据库的根目录下创建一个键值对。您试图为数据库设置一个值而不给它一个键,这会导致错误

仅供参考,
myRef.addValueEventListener(listener)
意味着监听整个数据库

myRef.child(“示例密钥”).addValueEventListener(listener)
意味着只听
示例_键的值

当您不再需要时,记得调用
removeEventListener(listener)

  • 仔细阅读文档,它正在使用
    DatabaseReference usersRef=ref.child(“用户”)
    将值保存到子级,而不是
    ref
    本身

    • 我也有同样的问题。我不得不切换Firebase参考。我的代码看起来像:

      Firebase myRef

      //论创建方法

      myRef=新Firebase(“将url插入Firebase”)


      我不知道为什么,但我使用了此引用,因为其他内容都不起作用。

      请显示您的代码和任何日志(如果可用)“我在Firebase控制台上看不到数据”。您确定没有查看Cloud Firestore选项卡吗?请用@回复。@Alex Mamo-不,我不是在看Firestore。我已经写了很多这样的数据库应用程序,没有问题。我忍不住认为这是显而易见的,但我一直盯着它看,改变着一些事情,我似乎根本不跟数据库说话。你能给我看更多的代码吗,你所发布的就我所知是行不通的,没有“Firebase”对象,我不能用“New”实例化ref还有一根绳子。
          database = FirebaseDatabase.getInstance();
          myRef = database.getReference("Message");
      
          // Write
          myRef.child("Monday").setValue("Hello, Lovely World!");
      
          // Read
          ValueEventListener listener;
          listener = 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);
                  String key = dataSnapshot.getKey();
      
                  Log.e(TAG, "Key is : " + key + " Value is: " + value);
              }
      
              @Override
              public void onCancelled(DatabaseError error) {
                  // Failed to read value
                  Log.e(TAG, "Failed to read value.", error.toException());
              }
          };
          myRef.addValueEventListener(listener);