有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何主动将数据从firebase获取到安卓

我不想在更改时自动从firebase接收数据,但只在按下按钮时接收数据。关于如何修改下面的代码有什么想法吗

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        name = (EditText) findViewById(R.id.editTextTextPersonName);
        butt = (Button) findViewById(R.id.button);
        viet = (TextView) findViewById(R.id.textView_viet);
        butt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String var = name.getText().toString();
                getdataUser();
            }
        });
        }
    private void getdataUser(){
        data_user1.child(var).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot data) {
                String yy = data.getValue().toString();
                viet.setText(yy)
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });
    }

任何想法都很感激


共 (1) 个答案

  1. # 1 楼答案

    如果您想一次性读取数据并完成此操作,则不应使用addValueEventListener()。而是使用documentation中描述的addListenerForSingleValueEvent()。您仍然需要在回调中异步处理结果,但在查询位置的数据快照中只调用一次

    如果您试图同步查询数据库以立即返回数据,则没有用于此目的的API—您必须通过回调异步处理数据