Serializing Arrays is not supported, please use Lists instead

John Joe

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)
Doug Stevenson

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.

edited at
0

Comments

0 comments
Login to comment

Related

com.google.firebase.database.DatabaseException: Serializing Arrays is not supported, please use Lists instead

What does ' com.google.firebase.database.DatabaseException: Serializing Arrays is not supported, please use Lists instead' mean?

Why is it preferred to use Lists instead of Arrays in Java?

PushAsync is not supported globally on Android, please use a NavigationPage

Addition/subtraction of integers and integer-arrays with Timestamp is no longer supported. Instead of adding/subtracting `n`, use `n * obj.freq`

"eval" is deprecated. Please use "evaluate" instead

'webkitIndexedDB' is deprecated. Please use 'indexedDB' instead

Edit function to work for arrays instead of lists

MSVC toolchain is not supported. Please use GNU toolchain

Xamarin.Forms - PushAsync is not supported globally on Android, please use a NavigationPage

Protobuf-net: How to debug "Nested or jagged lists and arrays are not supported"

Why use arrays instead of slices?

Serializing Laravel blade arrays

Why use Lists, when Arrays are faster?

The DrawerNavigator function name is deprecated, please use createDrawerNavigator instead

Sequelize associations - please use promise-style instead

DeprecationWarning: timers.unenroll() is deprecated. Please use clearTimeout instead

Warning: Please use `require("history").createBrowserHistory` instead of `require("history/createBrowserHistory")`

Serializing objects with nullable nested lists

Serializing Lists with external kotlinx Serializer

How to write 2 lists of items in 2 columns instead of 2 arrays?

Why is an IEnumerable(or IList) implemented using arrays instead of Linked Lists?

Please help me to uderstand the use of "->" in Arrays.sort()

Use data as arrays instead of table for Vega Lite

The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256

Application is not supported over the /common or /consumers endpoints. Please use the /organizations or tenant-specific endpoint

Lists of arrays

Nested arrays are not supported

Can I use a dplyr pipe instead of lapplying over lists in R?