首页 > 解决方案 > 以edittext为条件检查firebase值或获取用户输入

问题描述

嗨朋友们,我正在从 firebase 获取价值并将其保存到 edittext(已经完成)。但是我想检查是否有firebase值而不是将其放在edittext上,否则在同一个edittext上从用户那里获取输入,因为我将此值发送到另一个活动,如果firebase中没有值,则会出现空值错误

我正在尝试的代码是

      String  str= etext.getText().toString();

    if(str.equals("")) {

        final FirebaseDatabase database = FirebaseDatabase.getInstance();
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        String userId = user.getUid();
        DatabaseReference dbref = FirebaseDatabase.getInstance().getReference("Users/Clients").child(userId);
        dbref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                Paper.book().write(Common.channel, etext.getText().toString());
                names = dataSnapshot.child("channel_id").getValue().toString();
                // Toast.makeText(getBaseContext(),names,Toast.LENGTH_LONG).show();
                etext.setText(names);
                SharedPreferences settings = getSharedPreferences("userInput", 0);
                SharedPreferences.Editor editor = settings.edit();
                editor.putString("username", names);
                editor.commit();


                Intent i = new Intent(Men.this, Main2Activity.class);
                startActivity(i);
                finish();
            }

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

            }
        });
    }

标签: android

解决方案


试试下面

          public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                if (dataSnapshot.hasChild("channel_id") && dataSnapshot.child("channel_id").getValue() != null) {
                    names = dataSnapshot.child("channel_id").getValue().toString();
                    Paper.book().write(Common.channel, names);
                    etext.setText(names);
                    SharedPreferences settings = getSharedPreferences("userInput", 0);
                    SharedPreferences.Editor editor = settings.edit();
                    editor.putString("username", names);
                    editor.commit();
                    Intent i = new Intent(Men.this, Main2Activity.class);
                    startActivity(i);
                    finish();
                }
            }

推荐阅读