I want to upload image and text to Firebase Realtime Database. Below is my code
var newList : ArrayList<Bitmap> = arrayListOf()
.......
private fun insertSellerItemData(mAuth: FirebaseAuth?) {
val progressDialog = ProgressDialog(this@SellItemActivity)
progressDialog.setTitle("Image is Uploading...");
progressDialog.show()
val userId = FirebaseAuth.getInstance().currentUser?.uid
val item = Item(tv_title.text.toString(), newList)
databaseReference = FirebaseDatabase.getInstance().getReference("Items").child(userId)
databaseReference?.setValue(item)?.addOnCompleteListener { task ->
if (task.isSuccessful) {
Toast.makeText(application, "Data successfully added", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this@SellItemActivity, "You cannot register with this mobile number", Toast.LENGTH_SHORT).show()
}
}
}
Item
class Item(val title: String,val newList: ArrayList<Bitmap>) :Serializable{}
Error
Process: com.example.lyner.authentication, PID: 24574
com.google.firebase.database.DatabaseException: Serializing Arrays is not supported, please use Lists instead
Edit
I convert Bitmap to Uri before store to firebase
val lt : ArrayList<Uri> = arrayListOf()
for(i in newList)
{
val list = convertBitmaptoUri(i)
lt.add(list)
}
val item = Item(tv_title.text.toString(), tv_desc.text.toString(), tv_price.text.toString(),
tv_category.text.toString(), dueDate, lt)
databaseReference = FirebaseDatabase.getInstance().getReference("Items").child(userId)
databaseReference?.setValue(item)?.addOnCompleteListener { task ->
if (task.isSuccessful) {
Toast.makeText(application, "Data successfully added", Toast.LENGTH_SHORT).show()
progressDialog.dismiss()
} else {
Toast.makeText(this@SellItemActivity, "You cannot register with this mobile number", Toast.LENGTH_SHORT).show()
progressDialog.dismiss()
}
}
Error
java.lang.StackOverflowError: stack size 8MB
at java.lang.reflect.Method.invoke(Native Method)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:123)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
2019-03-24 12:24:59.268 27163-27163/com.example.lyner.authentication E/AndroidRuntime: at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:253)
at com.google.android.gms.internal.firebase_database.zzkt.zzl(Unknown Source:0)
at com.google.android.gms.internal.firebase_database.zzku.zzm(Unknown Source:185)
You can't store a Bitmap object in Realtime Database without converting it to a string first. Realtime Database does not make it easy to store binary data. Consider instead storing the raw binary data in Cloud Storage, and store a reference to that file in the database instead.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments