如何正确初始化变量?

时间:2021-06-04 21:56:09

标签: java android firebase firebase-realtime-database

我在初始化 a 变量时遇到问题。

a = 1

我查了一下,所有条件都满足。

if (dataSnapshot.exists()) {

   String devId = dataSnapshot.getValue().toString();

   if (deviceId.equals(devId)){

   a = 1;

   }
}

但由于某种原因,不满足 a == 1 的条件。

if (a == 1){

        Intent intent = new Intent(SplashScreen.this, SecondActivity.class);
        startActivity(intent);
        finish();

    } else {

        Intent intent = new Intent(SplashScreen.this, MainActivity.class);
        startActivity(intent);
        finish();

我也会留下完整的代码,我认为这对解决我的问题会很有用。

package com.example.vtsilver;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;


import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

public class SplashScreen extends AppCompatActivity {

    private String deviceId;
    private DatabaseReference database;
    public int a;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        init();
        getdeviceId();

    }


    private void init() {

        deviceId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
        database = FirebaseDatabase.getInstance().getReference().child("Tokens");

    }


    private void getdeviceId() {

        for (int i = 1; i < 5; i++) {

            database.child("token" + i).child("deviceId").addValueEventListener(new ValueEventListener() {
               
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    if (dataSnapshot.exists()) {

                        String devId = dataSnapshot.getValue().toString();

                        if (deviceId.equals(devId)){

                            a = 1;

                        }
                    }


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

                }

            });

        }
        
        if (a == 1){

            Intent intent = new Intent(SplashScreen.this, SecondActivity.class);
            startActivity(intent);
            finish();

        } else {

            Intent intent = new Intent(SplashScreen.this, MainActivity.class);
            startActivity(intent);
            finish();

        }

    }


}

对于您提供的任何帮助,我将不胜感激。

抱歉下面的测试,但是这个问题我不知道还能写什么,而且Stackoverflow写了看起来你的帖子主要是代码;请添加更多详细信息。

0 个答案:

没有答案
相关问题