2017-04-13 39 views
0

我正在学习使用Firebase,并开始创建我可以在Firebase控制台中看到的用户和密码。但是,createUserWithEmailAndPassword方法不起作用,我不知道为什么,也许是Gradle的一个问题。 下面是主要代码:Android:createUserWithEmailAndPassword不起作用(firebase)

public class MainActivity extends AppCompatActivity 
{ 
DialogProgress dialogProgress; 
EditText editEmail; 
EditText editPassword; 
String email; 
String password; 
FirebaseAuth firebaseAuth; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    editEmail = (EditText) findViewById(R.id.editEmail); 
    editPassword = (EditText) findViewById(R.id.editPassword); 
    firebaseAuth = FirebaseAuth.getInstance(); 

    findViewById(R.id.registrazione).setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      email = editEmail.getText().toString(); 
      password = editPassword.getText().toString(); 
      if(TextUtils.isEmpty(email)) 
      { 
       Toast.makeText(getApplicationContext(),"Email vuota",Toast.LENGTH_SHORT).show(); 
      } 

      if(TextUtils.isEmpty(password)) 
      { 
       Toast.makeText(getApplicationContext(),"Password vuota",Toast.LENGTH_SHORT).show(); 
      } 

      if(!(TextUtils.isEmpty(email)||TextUtils.isEmpty(password))) 
      { 
       dialogProgress = new DialogProgress(); 
       dialogProgress.show(getSupportFragmentManager().beginTransaction(),"Dialog"); 
       firebaseAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() 
       { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) 
        { 
         if(task.isSuccessful()) 
         { 
          Toast.makeText(getApplicationContext(),"Registrazione avvenuta",Toast.LENGTH_SHORT).show(); 
          getSupportFragmentManager().beginTransaction().remove(dialogProgress); 
         } 
         else 
         { 
          Toast.makeText(getApplicationContext(), "Registrazione fallita", Toast.LENGTH_SHORT).show(); 
          getSupportFragmentManager().beginTransaction().remove(dialogProgress); 
         } 
        } 
       }); 

      } 
     } 
    }); 
} 
} 

这里是我的gradle这个项目:

buildscript 
{ 
    repositories 
    { 
    jcenter() 
    } 
    dependencies 
    { 
    classpath 'com.android.tools.build:gradle:2.2.3' 
    classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

allprojects 
{ 
    repositories 
    { 
    jcenter() 
    } 
} 

task clean(type: Delete) 
{ 
delete rootProject.buildDir 
} 

这里是我的gradle这个应用程序:

apply plugin: 'com.android.application' 

android 
{ 
compileSdkVersion 25 
buildToolsVersion "25.0.2" 
    defaultConfig 
    { 
    applicationId "com.example.utente.myfirebase" 
    minSdkVersion 15 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner 
    "android.support.test.runner.AndroidJUnitRunner" 
    } 
buildTypes 
{ 
    release 
    { 
    minifyEnabled false 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- 
    rules.pro' 
    } 
} 
} 

dependencies 
{ 
compile fileTree(dir: 'libs', include: ['*.jar']) 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
{ 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
compile 'com.android.support:appcompat-v7:25.1.0' 
testCompile 'junit:junit:4.12' 
compile 'com.google.firebase:firebase-auth:10.0.1' 
} 
apply plugin: 'com.google.gms.google-services' 
+1

当你说的方法不叫,你的意思是永远不会到达的onComplete回调?或者,createUserWithEmailAndPassword永远不会到达。你可以通过在createUserWithEmailAndPassword之外加一个断点来检查你的调试器,看看它是否停在那里。 – wnieves19

+0

@ snowman28924该方法被调用,但它不起作用。 task.isSuccessful()始终为false – Curio

+1

然后调用else语句'task.getException()' –

回答

1

尝试登录的结果,所以你可以知道什么正是因为使用Log.d("FirebaseAuth", "onComplete" + task.getException().getMessage());而造成的问题,可能是因为您未在身份验证登录方法中激活电子邮件/密码选项,或者您的密码少于6个字符。

enter image description here

+0

哦,是的,问题是密码! – Curio