错误“java.lang.StackOverflowError:”尝试在Firebase数据库中保存对象时 [英] error "java.lang.StackOverflowError:" when try to save object in Firebase Database
问题描述
我尝试将应用程序中列出的用户的属性保存到数据库
Firebase
中,这是代码 mAuthListener = new FirebaseAuth.AuthStateListener(){
@Override $ b $ 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));
}
}
};
这里的问题是当我使用Google登录进入我的应用程序时,我无法保存用Google登录我的应用程序的用户的信息到我的Firebase数据库,但是我可以使用电子邮件方法保存用户的登录信息。
这是使用电子邮件进入我的应用程序的代码
mAuth.createUserWithEmailAndPassword(email.getText()。toString (),password.getText()。toString())
.addOnCompleteListener(HalamanPendaftaran.this,new OnCompleteListener< AuthResult>(){
@Override
public void onComplete(@NonNull Task< AuthResult>任务){
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();
}
}
});
至于尝试存储使用Google登录的用户数据时遇到的错误
01-10 18:42:00.619 8218-8218 / com.example.asus.fastapp E / AndroidRuntime:致命例外:main
进程:com.example.asus.fastapp,PID:8218
java.lang.StackOverflowError:堆栈大小8MB
在java.lang.reflect.Method.invoke(本地方法)
at (com.google.android)
.gms.internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
来自com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
在com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
在com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
在com.google .android.gms.internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
来自com.google.android.gms.internal .zzbqi $ zza.zzaF(未知来源)
,位于com.google.android.gms.internal.zzbqi.zzax(未知来源)
,位于com.google.android.gms.internal.zzbqi.zzaE (未知源)
在com.google.android.gms.internal.zzbqi $ zza.zzaF(未知源)
在com.google.android.gms.internal.zzbqi.zzax(未知源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
在com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
在com.google.android .gms.internal.zzbqi $ zza.zzaF(未知来源)
,位于com.google.android.gms.internal.zzbqi。 zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
来自com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
at com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
,位于com.google.android.gms.internal.zzbqi.zzax(未知来源)
,位于com.google。 android.gms.internal.zzbqi.zzaE(未知来源)
在com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
在com.google.android.gms。 internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
来自com.google.android.gms.internal.zzbqi $ zza。 zzaF(未知来源)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
来自com.google.android.gms.internal.zzbqi.zzaE(未知来源)
,位于com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
,位于com.google.an droid.gms.internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
来自com.google.android.gms.internal。 zzbqi $ zza.zzaF(未知来源)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
来自com.google.android.gms.internal.zzbqi.zzaE(未知来源)
在com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
来自com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
at com.google.android.gms.internal.zzbqi.zzax(未知来源)
,位于com.google.android.gms.internal.zzbqi.zzaE(未知来源)
,位于com.google.android。 gms.internal.zzbqi $ zza.zzaF(未知来源)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
来自com.google.android.gms.internal。 zzbqi.zzaE(未知来源)
,位于com.google.android.gms.internal.zzbqi $ zza.zzaF(未知酸味ce)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
在com.google.android.gms.internal.zzbqi.zzaE(未知来源)
在com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
在com.google.android.gms.internal.zzbqi.zzax(未知来源)
在com.google .android.gms.internal.zzbqi.zzaE(未知来源)
,位于com.google.android.gms.internal.zzbqi $ zza.zzaF(未知来源)
,位于com.google.android.gms .internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE
这是成功保存
Firebase数据库数据
任何帮助将不胜感激
您的成员
类包含 Uri
类型的字段。 Uri
不是 Firebase序列化的其中一个本机类型。
更改您的成员
类将Uri存储为字符串,并使用 Uri.toString()和 Uri.parse()转换。
I am new to the firebase.
I tried to save the properties of the users listed in my application into the database Firebase
, this is code
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));
}
}
};
the problem here is when I get into my application using the Google sign in, I can not save the information of the user who signed in to my application with google to my firebase database, but I can save the user's login information using email method. This is the code to get into my application using email
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("");
}
}
});
As for the error I get when trying to store user data that sign in using google
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
This is one of the data of the user who successfully saved Firebase Database data
any help would be greatly appreciated
Your Member
class contains a field of type Uri
. Uri
is not one of the native types that Firebase serializes.
Change your Member
class to store the Uri as a String and use Uri.toString() and Uri.parse() to convert.
这篇关于错误“java.lang.StackOverflowError:”尝试在Firebase数据库中保存对象时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!