将firebase值与整数进行比较

问题描述 投票:-3回答:1

我试图比较firebase数据与整数,但应用程序崩溃。这是代码:

 Firebase myfirebase; int result = 500;

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final TextView mytextview = (TextView) findViewById(R.id.textView);
    Firebase.setAndroidContext(getApplicationContext());
    myfirebase = new Firebase("https://analog-85958.firebaseio.com/number");
    myfirebase.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            String mychildtext = dataSnapshot.getValue(String.class);
            mytextview.setText(mychildtext);

            int num = Integer.parseInt(mychildtext);
            if (num == result)
            {
                Toast.makeText(getApplicationContext(),"success",Toast.LENGTH_SHORT).show();
            }
            else
            {
                Toast.makeText(getApplicationContext(),"fail",Toast.LENGTH_SHORT).show();
            }

        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

数据库结构:

enter image description here

java android firebase firebase-realtime-database
1个回答
1
投票

您正在尝试获取String并且数据库中有一个int

  @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            String mychildtext = dataSnapshot.getValue(String.class); //here
            mytextview.setText(mychildtext);

            int num = Integer.parseInt(mychildtext); 

首先得到这样的价值

int mychildtext = Integer.valueOf(dataSnapShot.getValue().toString());

你也可以尝试这个来获得价值

int mychildtext = dataSnapshot.getValue(Integer.class);

然后

mytextview.setText(mychildtext);

最后一部分在这里使用你的价值

int num = mychildtext;

     if (num == result)
                {
                    Toast.makeText(getApplicationContext(),"success",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    Toast.makeText(getApplicationContext(),"fail",Toast.LENGTH_SHORT).show();
                }

编辑:我认为你的参考是错误的,改变它就像这样

String url = "https://analog-85958.firebaseio.com/number";
DatabaseReference ref = FirebaseDatabase.getInstance().getReferenceFromUrl(url);


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final TextView mytextview = (TextView) findViewById(R.id.textView);
    Firebase.setAndroidContext(getApplicationContext());
    ref.addValueEventListener(new ValueEventListener() { ....   

希望它有所帮助,快乐编码

© www.soinside.com 2019 - 2024. All rights reserved.