【问题标题】:Cannot connect to Google FireBase无法连接到 Google FireBase
【发布时间】:2019-03-01 09:40:12
【问题描述】:

我是安卓工作室的新手。在我的项目中,我创建了一个登录页面并在 google 上设置了 firebase 帐户并上传了一些数据(用户名、密码)。但我无法连接到火力基地。每次我运行它,应用程序都会在我的手机上闪回。任何人都可以帮助我这出了什么问题?

package com.example.edward.eventmanagementsystem;

import android.app.ProgressDialog;
import android.content.Intent;
import android.provider.ContactsContract;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.edward.eventmanagementsystem.model.Organizer;
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 MainActivity extends AppCompatActivity {

    //private Button button;
    Button loginButton;
    EditText editLogin, editPass;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();

        editLogin = findViewById(R.id.editLogin);
        editPass = findViewById(R.id.editPass);

        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent MainMenu =  new Intent(MainActivity.this, com.example.edward.eventmanagementsystem.MainMenu.class);
                startActivity(MainMenu);
            }
        });

        // Init Database
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        final DatabaseReference table_user = database.getReference("Organizer");

        loginButton.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick (View view){

                final ProgressDialog mDialog = new ProgressDialog(MainActivity.this);
                mDialog.setMessage("Please waiting...");
                mDialog.show();

                table_user.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {

                        //check if user does't exists in database
                        if(dataSnapshot.child(editLogin.getText().toString()).exists()) {
                            //get organizer sign in information
                            mDialog.dismiss();
                            Organizer organizer = dataSnapshot.child(editLogin.getText().toString()).getValue(Organizer.class);

                            if(organizer.getPassword().equals(editPass.getText().toString())){
                                Toast.makeText(MainActivity.this, "Sign in successfully!", Toast.LENGTH_SHORT).show();
                            }
                            else {
                                Toast.makeText(MainActivity.this, "Sign in failed!", Toast.LENGTH_SHORT).show();
                            }
                        }
                        else
                        {
                            Toast.makeText(MainActivity.this, "User not exists in database.", Toast.LENGTH_SHORT).show();
                        }
                    }
                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                    }
                });
            }
        });
    }

/** Called when the user taps the Send button 
public void onClick(View view){
Intent intent = new Intent(this, MainMenu.class);
startActivity(intent);
}*/

}

【问题讨论】:

    标签: java android firebase mobile-application


    【解决方案1】:

    登录Button有两个监听器,这甚至让我感到困惑:

    loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent MainMenu =  new Intent(MainActivity.this, com.example.edward.eventmanagementsystem.MainMenu.class);
                startActivity(MainMenu);
            }
        });
    
    loginButton.setOnClickListener(new View.OnClickListener(){
    

    当您单击 Button 时,它将转到另一个名为 MainMenuActivity但您还有另一个监听器,它负责 Firebase 的工作.

    解决方案:

    使用一个带有 firebase 代码的侦听器,当 firebase 登录成功后,转到另一个 Activity

    if(organizer.getPassword().equals(editPass.getText().toString())){
       Toast.makeText(MainActivity.this, "Sign in successfully!", Toast.LENGTH_SHORT).show();
    
      Intent MainMenu =  new Intent(MainActivity.this, MainMenu.class);
      startActivity(MainMenu);
      // Here use this code to go to another activity class
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-10
      • 2018-12-09
      • 1970-01-01
      • 2021-10-06
      • 2013-06-15
      相关资源
      最近更新 更多