我尝试使用createUserWithEmailAndPassword
方法创建用户但无法执行此操作。
正在调用OnAuthenticate方法,但用户对象为null,并且没有在firebase控制台内创建用户。
这是我的代码,也是在线提供的代码。
MAinActivity.java
private static FirebaseAuth mAuth;
private static FirebaseAuth.AuthStateListener mAuthListener;
private static String TAG = "RegisterDEbug";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
waitForDebugger();
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged:signed_out");
}
// ...
}
};
mAuth.addAuthStateListener(mAuthListener);
mAuth.createUserWithEmailAndPassword("9199999989@pintech.com", "corrfecthorsebatterystaple")
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
waitForDebugger();
Log.d(TAG, "Authentication successful");
if (!task.isSuccessful()) {
//Toast.makeText(this, "Authentication failed.", Toast.LENGTH_SHORT).show();
}
}
});
}
app.properties
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.pt.reg"
minSdkVersion 10
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.android.gms:play-services:9.0.2'
//compile 'com.google.android.gms:play-services-auth:9.0.2'
compile 'com.google.firebase:firebase-core:9.0.2'
compile 'com.google.firebase:firebase-auth:9.0.2'
}
apply plugin: 'com.google.gms.google-services'
注意 - 我已经尝试过firebase的web解决方案来创建一个工作正常的用户。
答案 0 :(得分:17)
I had this problem too. The password I was testing the app with was just too short. I extended it to a longer password and it worked. You have to meet google's password complexity standards.
答案 1 :(得分:1)
我有同样的问题。
变化:
mAuth.createUserWithEmailAndPassword("9199999989@pintech.com", "corrfecthorsebatterystaple")
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
为:
mAuth.createUserWithEmailAndPassword("9199999989@pintech.com", "corrfecthorsebatterystaple")
.addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>()
答案 2 :(得分:1)
我花了2天的时间来寻找这种解决方案,却发现这是由于模拟器造成的。尝试使用智能手机运行您的应用。对我来说,它奏效了。
答案 3 :(得分:1)
对我来说,我解决这个问题的方法首先是确保我在 firebase 中启用了电子邮件/密码 signInAuth
最后我确定了这条线
mAuth.createUserWithEmailAndPassword(username,password)
.addOnCompleteListener(**SignUpActivity.this**, task -> {
... }) 有 myactivity.this 而不是 this 单独作为上下文
答案 4 :(得分:0)
答案 5 :(得分:0)
我认为问题在于您可能未在应用程序中添加firebase SDK。
在模块(应用程序级)Gradle文件(app/build.gradle
)的依赖项中添加以下实现:
dependencies {
implementation 'com.google.firebase:firebase-auth:19.3.1'
}
答案 6 :(得分:0)
对于那些仍在寻找上面未曾使用过的东西的人来说:
我发现在this
的第一个参数中,在.addOnCompleteListener
关键字之前使用您的活动名称对我有用。
例如.addOnCompleteListener(LoginActivity.this, etc..);
希望这可以帮助仍在寻找的人, 亚当
答案 7 :(得分:0)
我花了整整2天的时间试图弄清楚这一点,最后发现我的模拟器没有连接到互联网。我在Mac的“网络”偏好设置中输入了DNS服务器,然后输入8.8.8.8,然后重新启动了模拟器。开始工作了!