Beranda › Forums › Belajar Flutter Mobile Apps Tingkat Mahir › error setelah migrasi ke null safety
Tagged: Migrasi ke Null Safety
- This topic has 28 replies, 2 voices, and was last updated 4 years, 3 months ago by Anonymous.
-
AuthorPosts
-
July 18, 2022 at 3:18 PM #51789Anonymous
Trus ini aku lihat url yang kamu pakai kenapa ada $#8217; diakhirannya ya?
seharusnya url nya cuma begini aja https://notes-9f78d-default-rtdb.asia-southeast1.firebasedatabase.app/notes.jsonJuly 18, 2022 at 3:36 PM #51790sudah saya ubah coach di Firebase..namun masih belum bisa berjalan di emulator..
July 18, 2022 at 3:39 PM #51791maaf coach yang ini $#8217; dikode yang mana ya coach?
July 18, 2022 at 4:03 PM #51795AnonymousOh, untuk yang firebase rules emang gk ada efek apa” untuk sekarang, itu untuk nanti soalnya jika tidak diubah maka dalam 4 hari dari sekarang maka realtime databasenya gk bisa diakses lewat API. makanya kita set agar menjadi selalu TRUE sehingga bisa diakses kapan pun.
July 18, 2022 at 4:05 PM #51796AnonymousOh itu ada di file note api
coba kamu cek
final uri = Uri.parse(
‘https://notes-9f78d-default-rtdb.asia-southeast1.firebasedatabase.app/notes/$id.json’);ada ekstra ’
July 18, 2022 at 4:07 PM #51799Anonymoushmm. apa ini ekstra ’ ini error dari forum ITBOX ya?
paling gini
coba kamu cek di code kamu
itu urlnya udh benar?
apakah ada ekstra ’ seperti yang aku lihat di balasan kamu diforum ini?July 18, 2022 at 4:18 PM #51800sudah sesuai coach di VS code tidak ada ’, sepertinya berubah di forum itbox saat copy coach..
July 19, 2022 at 8:24 AM #51810AnonymousHalo,
ini kalau aku coba lihat data kamu di realtime database
{
“-N5nKaFyiazbUTYh-0YD”: {
“created_at”: “2022-06-30T13:39:50.853573”,
“isPinned”: false,
“note”: “123 note with null safety”,
“title”: “tes note with null safety”,
“updated_at”: “2022-07-15T23:00:00.181200”
},
“-N6uKSusOF4xzmtIHzvj”: {
“created_at”: “2022-07-14T08:32:16.374856”,
“isPinned”: true,
“note”: “Isi test note with null 1”,
“title”: “Test Note null 1”,
“updated_at”: “2022-07-15T22:59:58.589446”
},
“-N7BAgL7nTT7GuIQ7rd3”: {
“created_at”: “2022-07-17T19:42:47.490535”,
“isPinned”: false,
“note”: “123”,
“title”: “123”,
“updated_at”: “2022-07-17T19:42:47.490535”
},
“note”: “123”,
“title”: “123”,
“updated_at”: “2022-07-17T13:08:53.668538”
}itu yang bagian aku Bold(bagian terakhir), datanya bisa dihapus?
soalnya formatnya jadinya gk sesuai dengan apa yang kita mappingin di code.July 19, 2022 at 8:52 AM #51814dear coach jadi terhapus semua coach saat
“note”: “123”,
“title”: “123”,
“updated_at”: “2022-07-17T13:08:53.668538″ di hapus..atau saya boleh minta source code untuk app note nya coach, biar saya samain code nya…terimakasih sebelumnya coach..
July 19, 2022 at 9:10 AM #51815Anonymousmaksutnya terhapus semua apa ya?
kan yang aku lihat itu kamu ada 6 data
3 data itu udh benar formatnya, sedangkan yang dihapus itu hanya 3 data lainnya yang formatnya salah.
klo bingung, dihapus semua juga boleh, bisa mulai input data dari awal.trus setelah data dihapus apakah masih error?
July 19, 2022 at 9:49 AM #51819Sudah saya hapus dan saya buat ulang di firebase coach..
namun di emulator tetap error : Exception : Error terjadi kesalahan..
di firebase:
N01
created_at:”2022-07-17T19:42:47.490535″
isPinned:false
note:”Test isi note”
title:”Test title”
updated_at:”2022-07-17T19:42:47.490535″ini full code saya coach di github: https://github.com/Vram-AH/aplikasi-notes-flutter
July 21, 2022 at 7:20 PM #77563AnonymousHallo, sorry agak lama balasnya
baru sempat cobain code kamu.
ini aku barusan coba, dan ketemu ya masalahnya dimana.diawal pertanyaan, kamu mention ada 2 error nih, dimana error pertama list notenya gk muncul dan ada tulisan
error terjadi kesalahan
dan untuk error ke 2 itu pas menambahkan note terjadi error
RangeError(index):invalid value: Not in inclusive range 0..3:-1
nah kedua masalah ini disebabkan karena pada function submitNote, validasinya ada yang salah sehingga yang seharunya menambahkan note malah function yang dijalankan itu mengupdate note, sehingga data yang diinput ke database tidak sesuai.
validasi salah yang aku maksut itu terdapat pada file add_or_detail_screen.dart di line 43
if (_note.id == null) { await notesProvider.addNote(_note); } else { await notesProvider.updateNote(_note); }Kalau kamu ingat, setelah kita migrasi ke null safety maka di code kita tidak boleh ada initialisasi variable null, makanya di line 17 kita menginitialisasi object Note dengan id = “” bukan null.
maka sekarang setelah migrasi validasi yang benar untuk line 43 seharusnya bukan _note.id == null tapi _note.id.isEmpty
karena _note.id sudah pasti bukan berisi null sehingga untuk validasi itu akan selalu false sehingga function yang dijalankan merupakan function updateNote, bukan addNote.dikarenakan kesalahan ini lah yang menyebabkan data di database itu berantakan tidak sesuai format yang kita inginkan.
sehingga pada saat get data notes, terjadi exception.jadi untuk membenarkan semua error ini.
kamu hanya cukup mengubah code kamu menjadi seperti ini.if (_note.id.isEmpty) { //ubah _note.id == null menjadi _note.isEmpty await notesProvider.addNote(_note); } else { await notesProvider.updateNote(_note); }dan satu hal lagi
karena aku ada ngetest insert data ke database kamu, maka kamu harus hapus dulu ya data yang sekarang, karena datanya sudah kacau, dan setelah kamu hapus, nantikan jadinya pas kamu get datanya isinya menjadi null.
nah karena datanya null maka dihome_screenya akan muncul text error terjadi kesalahan pada saat gk ada note, walaupun nanti tulisan itu akan hilang setelah menambahkan note, tapi akan lebih bagus kalau kita tidak memunculkan tulisan terjadi kesalahan pada saat tidak ada note.maka untuk menghilankan itu kamu perlu tambah 1 validasi lagi ke file getAllNote() di file note_api.dart di line 23
if (response.body == "null") return notes;Seharusnya dengan begini, masalah kamu udh beres nih.
July 22, 2022 at 8:30 AM #77572Sudah bisa berjalan coach..terimakasih banyak coach arahan dan petunjuknya..
July 22, 2022 at 10:32 AM #77609AnonymousSip sama”, mantap.
-
AuthorPosts
- You must be logged in to reply to this topic.