【发布时间】:2017-05-24 20:50:45
【问题描述】:
我是火力基地的新手。
我试图将我的应用程序中列出的用户的属性保存到数据库Firebase,这是代码
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
firebaseuser = firebaseAuth.getCurrentUser();
if (firebaseuser != null) {
finish();
firebaseuser = mAuth.getCurrentUser();
String nama = firebaseuser.getDisplayName();
String mail = firebaseuser.getEmail();
//String pass = password.getText().toString();
String id = firebaseuser.getUid();
//Uri gambar = firebaseuser.getPhotoUrl();
member1 = new Member(nama, mail, "", "belum", "belum", "belum", id);
datab.getReference("member").push().setValue(member1);
startActivity(new Intent(getApplicationContext(), HalamanUtama.class));
}
}
};
这里的问题是当我使用谷歌登录进入我的应用程序时,我无法将使用谷歌登录到我的应用程序的用户的信息保存到我的 firebase 数据库中,但我可以使用保存用户的登录信息电子邮件方法。 这是使用电子邮件进入我的应用程序的代码
mAuth.createUserWithEmailAndPassword(email.getText().toString(), password.getText().toString())
.addOnCompleteListener(HalamanPendaftaran.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
progressdialog.dismiss();
finish();
firebaseuser = mAuth.getCurrentUser();
String nama = firebaseuser.getDisplayName();
String mail = firebaseuser.getEmail();
String pass = password.getText().toString();
String id = firebaseuser.getUid();
Uri gambar = firebaseuser.getPhotoUrl();
member1 = new Member(nama, mail, pass, "belum", "belum", "belum", id, gambar);
datab.getReference("member").push().setValue(member1);
startActivity(new Intent(HalamanPendaftaran.this, HalamanUtama.class));
} else {
progressdialog.dismiss();
Toast.makeText(HalamanPendaftaran.this, "tidak dapat mendaftarkan user, tolong coba lagi !", Toast.LENGTH_SHORT).show();
email.setText("");
password.setText("");
}
}
});
至于我在尝试存储使用谷歌登录的用户数据时遇到的错误
01-10 18:42:00.619 8218-8218/com.example.asus.fastapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.asus.fastapp, PID: 8218
java.lang.StackOverflowError: stack size 8MB
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE
这是成功保存的用户的数据之一 Firebase Database data
任何帮助将不胜感激
【问题讨论】:
-
我没有发现任何错误,但我想知道你为什么这么早就打电话给
finish()? -
em,用于在活动之间移动。问题出在代码“datab.getReference("member").push().setValue(member1);"
-
我知道它的用途,但我只是想知道为什么你在代码的早期而不是之后调用它。我认为你不应该这么早打电话给
finish()。在实际开始新活动后尝试调用它。 -
哦好的我改一下,问题还没解决
-
您还获得了当前用户两次。在您检查
user != null之前和之后一次。你能提供你的Member.class吗?我想这有什么问题。
标签: java android firebase firebase-realtime-database firebase-authentication