2016-05-29 14 views
2

私のアプリで新しいGoogle firebase認証を設定しようとしています。Google Firebase認証Androidスタジオ

ボタンをOnClickListenerで実行すると、cannot resolve 'addOnCOmpleteListener'が届きます。

私はこの方法は、任意のヘルプをいただければ幸いです

ボタン呼び出し内からアクセスすることはできませんなぜ私はかなり理解カントonClickListenerは、エラーが行くのボタンのうちfirebase呼び出し、

を移動した場合

package com.example.alex.test; 

import android.app.Activity; 
import android.app.Application; 
import android.content.Context; 
import android.net.Uri; 
import android.support.annotation.NonNull; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

import com.google.android.gms.tasks.OnCompleteListener; 
import com.google.android.gms.tasks.Task; 
import com.google.firebase.auth.AuthResult; 
import com.google.firebase.auth.FirebaseAuth; 
import com.google.firebase.auth.FirebaseUser; 


public class LoginActivity extends AppCompatActivity { 
    private FirebaseAuth mAuth; 

    private FirebaseAuth.AuthStateListener mAuthListener; 

    Button buttonLogin; 
    EditText textEmail; 
    EditText textPassword; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 

     mAuth = FirebaseAuth.getInstance(); 

     buttonLogin = (Button) findViewById(R.id.buttonLogin); 
     textEmail = (EditText) findViewById(R.id.editEmail); 
     textPassword = (EditText) findViewById(R.id.editPassword); 

     mAuthListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
       FirebaseUser user = firebaseAuth.getCurrentUser(); 
       if (user != null) { 
        // User is signed in 
        Log.d("LOG_Login", "onAuthStateChanged:signed_in:" + user.getUid()); 
       } else { 
        // User is signed out 
        Log.d("LOG_Login", "onAuthStateChanged:signed_out"); 
       } 
       // ... 
      } 
     }; 




     buttonLogin.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Perform action on clic 

       mAuth.signInWithEmailAndPassword(textEmail.getText().toString(),textPassword.getText().toString()) 
         .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
          @Override 
          public void onComplete(@NonNull Task<AuthResult> task) { 
           Log.d("LOG_Login", "signInWithEmail:onComplete:" + task.isSuccessful()); 

           // If sign in fails, display a message to the user. If sign in succeeds 
           // the auth state listener will be notified and logic to handle the 
           // signed in user can be handled in the listener. 
           if (!task.isSuccessful()) { 
            Log.w("LOG_Login", "signInWithEmail", task.getException()); 
            Toast.makeText(getApplicationContext(), "Authentication failed.", Toast.LENGTH_SHORT).show(); 
           } 

           // ... 
          } 
         }); 
      } 
     }); 

    } 
} 

私は、Android Studioの2.2

Iを使用しています

、私は、エラーが行くonClickListenerのボタンのうち、firebase呼び出しを移動した場合、私はGUI

答えて

3

以内にこれに私のアプリを接続している

Firebase

内のプロジェクトを作成している私はかなり理解してカントボタン呼び出し内からメソッドにアクセスできない理由

thisは、匿名クラス内にある場合はクリックリスナーです。

このメソッドでは、OnClickListenerではなく、addOnCompleteListenerの最初のパラメータとしてActivityが必要です。助けのための

.addOnCompleteListener(LoginActivity.this, ... 
+0

おかげで、私はgetApplicationContextを(しようとした治療を)働いていたが、これはそう – PowerMan2015

+0

を働いていなかった、それは活動を必要とする理由がわからない、私はドキュメントを見て行かなければなりませんでした –