Firebase Authentication

Jonas31

Mitglied
Hallo,
Ich programmiere zurzeit eine app, wo man sich anmelden oder regsitrieren kann. Jetzt möchte ich eine funktion hinzufügen das ich die Nutzer einfach sperren möchte. DAs Problem ist wenn ich das Konto bei Firebase Authentication lösche das den die App abstürtzt. Ich möchte überprüfen ob der nutzer existiert oder nicht
 

Jonas31

Mitglied
Hier:
Code:
public class MainActivity extends AppCompatActivity {

    Button btn, btnreg, btnlog, btnendd;
    private FirebaseAuth mAuth;
    ImageView iV;
    final String KEY = "key10";
    SharedPreferences preferences;
    SharedPreferences.Editor editor;
    private FirebaseDatabase database = FirebaseDatabase.getInstance();
    private DatabaseReference myref = database.getReference();
String test1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn = (Button) findViewById(R.id.btn);
        btnreg = (Button) findViewById(R.id.btnreg);
        btnlog = (Button) findViewById(R.id.btnlog);
        btnendd = (Button) findViewById(R.id.btnendd);
        this.preferences = this.getSharedPreferences("name", MODE_PRIVATE);
        editor = preferences.edit();
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, play_activity.class);
                startActivity(intent);

            }
        });
        btnendd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                FirebaseAuth.getInstance().signOut();
            }
        });
        btnreg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intsent = new Intent(MainActivity.this, RegisterActivity.class);
                startActivity(intsent);

            }
        });
        btnlog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, LoginActivity.class);
                startActivity(intent);

            }
        });

        mAuth = FirebaseAuth.getInstance();
        AlarmManager alarmManager = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE);
        Intent startservice = new Intent(MainActivity.this, Hintergrundservice.class);
        PendingIntent pendingIntent = PendingIntent.getService(MainActivity.this, 0, startservice, 0);
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis() + 1000*60*480);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*480, pendingIntent);


    }


    @Override
    protected void onStart() {
        super.onStart();
        FirebaseUser user = mAuth.getCurrentUser();

        if (user == null){
            btnlog.setVisibility(View.VISIBLE);
            btnreg.setVisibility(View.VISIBLE);
            btnendd.setVisibility(View.INVISIBLE);
        }else{
            btnlog.setVisibility(View.INVISIBLE);
            btnreg.setVisibility(View.INVISIBLE);
            btnendd.setVisibility(View.VISIBLE);
            final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

           
            /*
            Dies ist der Versuch gewesen
            if(firebaseUser.getUid() != firebaseUser.getUid()){
                Toast.makeText(getApplicationContext(), "Gesperrt", Toast.LENGTH_LONG).show();

            }else{
                Toast.makeText(getApplicationContext(), "nicht gesperrt", Toast.LENGTH_LONG).show();

            }
            */
        }


    }




}
 

Jonas31

Mitglied
Achso das habe ich dort ja geschrieben:rolleyes:. Ich hab den fehler entfernt. Die sollte die UID des Users auslesen. Da es die UID nicht mehr gibt kann er die nicht mehr auslesen und deshalb ist die app abgestürtzt
 

Robat

Top Contributor
Okay ich glaub so langsam fangen wir an nicht mehr an einander vorbei zu sprechen :p
Es geht quasi um den Codeabschnitt:
Java:
@Override
protected void onStart() {
    super.onStart();
    FirebaseUser user = mAuth.getCurrentUser();

    if ( user == null ) {
        btnlog.setVisibility(View.VISIBLE);
        btnreg.setVisibility(View.VISIBLE);
        btnendd.setVisibility(View.INVISIBLE);
    } else {
        btnlog.setVisibility(View.INVISIBLE);
        btnreg.setVisibility(View.INVISIBLE);
        btnendd.setVisibility(View.VISIBLE);
        final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

       
        /*
        Dies ist der Versuch gewesen
        if(firebaseUser.getUid() != firebaseUser.getUid()){
            Toast.makeText(getApplicationContext(), "Gesperrt", Toast.LENGTH_LONG).show();

        }else{
            Toast.makeText(getApplicationContext(), "nicht gesperrt", Toast.LENGTH_LONG).show();

        }
        */
    }
}
Du willst jetzt im else-Zweig schauen, ob der firebaseUser existiert?
 

Robat

Top Contributor
Kannst du da nicht auch einfach mit firebaseUser != null testen, ob er existiert? getCurrentUser() gibt doch bestimmt null zurück, wenn es den User nicht gibt?
 

Ähnliche Java Themen

Neue Themen


Oben