【问题标题】:Data is not showing up in a firebase database console数据未显示在 Firebase 数据库控制台中
【发布时间】:2017-09-24 19:49:07
【问题描述】:

我是 firebase 新手,我正在使用我的 android 应用程序进行尝试。在我的应用程序中,我只是在数据库上保存名称,这是非常基本的,有消息显示数据已成功保存,但是当我试图在 firebase 数据库控制台中查看它时,它没有显示任何内容,甚至根 url 也没有显示。我还为读取和写入权限将 Firebase 规则设置为 true。

请看我下面的代码:

POJO 类:

package com.app.elaryx;

public class Data {

String name;

public Data(){

}

public Data(String name){

    this.name = name;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
 }
}

JAVA代码:

public class MainActivity extends AppCompatActivity {

Button button;
EditText name;
DatabaseReference dRef;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    dRef = FirebaseDatabase.getInstance().getReference();

    button = (Button)findViewById(R.id.button);
    name = (EditText)findViewById(R.id.name);

    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            button.setText("Saving...");

            if(name.getText().toString().equals(""))
            {
                button.setText("SUBMIT");
                Toast.makeText(getApplicationContext(), "Enter name", Toast.LENGTH_SHORT).show();
            }
            else {
                Data d = new Data();

                d.setName(name.getText().toString());

                dRef.push().setValue(d).addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {

                        if (task.isSuccessful()) {

                            button.setText("SUBMIT");
                            Toast.makeText(getApplicationContext(), "Data Saved", Toast.LENGTH_SHORT).show();
                        } else {

                            button.setText("SUBMIT");
                            Toast.makeText(getApplicationContext(), "" + task.getException().getMessage().toString(), Toast.LENGTH_SHORT).show();
                        }
                    }
                });

            }
        }
    });
  }
}

My Firebase console Image here

在我看来,在代码中一切都很好。请让我知道问题

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    您犯了一个非常愚蠢的错误,因此您没有得到结果,因为您已经在模型类中设置了值,但是在获取值时,您什么也没做。

    设置一个值你很好d.setName(name.getText().toString()) 但是当你传递数据时这需要一些值,为此你必须使用 d.getName() 提供结果,机器不会那样做。

    在你的 setValue 代码中这样做,我相信你会得到结果。有时我们会忽略这类错误,但要注意这些错误非常重要,否则您会受苦。

    dRef.push().setValue(d.getName()).addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
    
                        if (task.isSuccessful()) {
    
                            button.setText("SUBMIT");
                            Toast.makeText(getApplicationContext(), "Data Saved", Toast.LENGTH_SHORT).show();
                        } else {
    
                            button.setText("SUBMIT");
                            Toast.makeText(getApplicationContext(), "" + task.getException().getMessage().toString(), Toast.LENGTH_SHORT).show();
                        }
                    }
                });
    

    从错误中吸取教训,每天变得更好!快乐学习。如果您觉得这很有用,请在此答案上打勾,将其标记为正确。

    编辑

    试试这个方法,告诉我它是否有效!

    首先在你的 DatabaseReference 中像这样初始化

    dRef = FirebaseDatabase.getInstance().getReference().child("Names");
    

    然后在你的代码中这样做:

    Data d = new Data();
    
                d.setName(name.getText().toString());
    
                dRef.setValue(d.getValue()).addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
    
                        if (task.isSuccessful()) {
    
                            button.setText("SUBMIT");
                            Toast.makeText(getApplicationContext(), "Data Saved", Toast.LENGTH_SHORT).show();
                        } else {
    
                            button.setText("SUBMIT");
                            Toast.makeText(getApplicationContext(), "" + task.getException().getMessage().toString(), Toast.LENGTH_SHORT).show();
                        }
                    }
                });
    

    【讨论】:

    • 是的,我知道,但这是为了在应用程序中显示数据,我的问题是我无法在 firebase 控制台中看到我保存的数据,它什么也没显示。我在上面提供了我的控制台图片链接。
    • 是的,伙计,我也试过你的解决方案,但它和我的一样。保存数据后,它没有以 JSON 格式显示在我的 Firebase 控制台中。
    • 然后像这样尝试并告诉我它是否有效!见。我的答案的编辑
    猜你喜欢
    • 2018-10-23
    • 1970-01-01
    • 2021-08-29
    • 2018-02-25
    • 1970-01-01
    • 2021-12-26
    • 2018-10-02
    • 1970-01-01
    • 2022-12-04
    相关资源
    最近更新 更多