I'm trying to encrypt the aes256 message and send it to the firebase, but something goes wrong. Crash here

byte[] shifr = aes256.makeAes(msg.getBytes(), Cipher.ENCRYPT_MODE); //Вот тут вылетает my_ref.push().setValue(shifr); 

My code is:

 public class MainActivity extends AppCompatActivity { private static int max_message_length = 150; FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference my_ref = database.getReference("messages"); EditText m_edit_text_message; Button m_send_button; RecyclerView m_messages_recycler; ArrayList<String> messages = new ArrayList<>(); Aes_256_Class aes256 = new Aes_256_Class(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); m_send_button = findViewById(R.id.send_message_b); m_edit_text_message = findViewById(R.id.message_input); m_messages_recycler = findViewById(R.id.message_recycle); m_messages_recycler.setLayoutManager(new LinearLayoutManager(this)); final Data_Adapter data_adapter = new Data_Adapter(this, messages); m_messages_recycler.setAdapter(data_adapter); m_send_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String msg = m_edit_text_message.getText().toString().trim(); if (msg.equals("")){ Toast.makeText(getApplicationContext(),"***",Toast.LENGTH_SHORT).show(); return; } if (msg.equals("Я булка")){ Toast.makeText(getApplicationContext(),"*** )))",Toast.LENGTH_SHORT).show(); return; } if (msg.length()> max_message_length){ Toast.makeText(getApplicationContext(),"Слишком длинное сообщение",Toast.LENGTH_SHORT).show(); return; } String mes = msg; byte[] shifr = aes256.makeAes(mes.getBytes(), Cipher.ENCRYPT_MODE); //Вот тут вылетает my_ref.push().setValue(shifr); m_edit_text_message.setText(""); } }); my_ref.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) { String msg = dataSnapshot.getValue(String.class); messages.add(msg); data_adapter.notifyDataSetChanged(); m_messages_recycler.smoothScrollToPosition(messages.size()); } @Override public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) { } @Override public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) { } @Override public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) { } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } }); } } 

Logs:

  2019-05-10 15:19:59.660 1148-1451/? E/WifiVendorHal: getWifiLinkLayerStats(l.939) failed {.code = ERROR_NOT_SUPPORTED, .description = } 2019-05-10 15:19:59.674 1148-1451/? E/WificondControl: Noise: 0, Snr: -1, Chload: -1 2019-05-10 15:20:00.042 1545-1545/? E/DateView: DateView,mCurrentTime: 1557490800042 2019-05-10 15:20:00.074 1545-1545/? E/LocalCalendar: invalid param calendarId. 2019-05-10 15:20:00.663 8443-8443/com.example.batth.govno E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.batth.govno, PID: 8443 com.google.firebase.database.DatabaseException: Serializing Arrays is not supported, please use Lists instead at com.google.android.gms.internal.firebase_database.zzkt.zzi(Unknown Source:246) at com.google.android.gms.internal.firebase_database.zzkt.zzh(Unknown Source:0) at com.google.firebase.database.DatabaseReference.zza(Unknown Source:10) at com.google.firebase.database.DatabaseReference.setValue(Unknown Source:7) at com.example.batth.govno.MainActivity$1.onClick(MainActivity.java:74) at android.view.View.performClick(View.java:6648) at android.view.View.performClickInternal(View.java:6620) at android.view.View.access$3100(View.java:787) at android.view.View$PerformClick.run(View.java:26167) at android.os.Handler.handleCallback(Handler.java:891) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:7539) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958) 
  • The error message says that setValue cannot pass arrays to setValue , and you pass byte[] . - Sergey Gornostaev

0