Skip to content

Ombor JS: Firebase uslubidagi offline ma'lumotlar bazasi

· 2 min

Ombor JS - bu brauzer uchun mo’ljallangan, Firebase uslubidagi sodda va kuchli offline ma’lumotlar bazasi kutubxonasi. U IndexedDB ustida qurilgan bo’lib, foydalanuvchilarga mahalliy ma’lumotlarni oson va samarali tarzda boshqarish imkonini beradi.

Nima uchun Ombor JS?#

Zamonaviy veb-ilovalar ko’pincha offline rejimda ishlashni talab qiladi. Ombor JS quyidagi afzalliklarni taqdim etadi:

O’rnatish#

CDN orqali#

Ishlab chiqish (development) uchun:

<script src="https://unpkg.com/Ombor/dist/Ombor.dev.js"></script>
<script>
let db = new Ombor('db')
</script>

Ishlab chiqarish (production) uchun:

<script src="https://unpkg.com/Ombor/dist/Ombor.min.js"></script>
<script>
let db = new Ombor('db')
</script>

NPM orqali#

Terminal window
npm install Ombor --save
import Ombor from 'Ombor'
let db = new Ombor('db')

Asosiy tushunchalar#

Ombor JS Firebase Firestore kabi tuzilishga ega:

Oddiy misollar#

Ma’lumot qo’shish#

// Foydalanuvchi qo'shish
db.collection('foydalanuvchilar').add({
id: 1,
ism: 'Otabek',
yosh: 19,
shahar: 'Toshkent'
})

Ma’lumotlarni o’qish#

// Barcha foydalanuvchilarni olish
db.collection('foydalanuvchilar').get().then(foydalanuvchilar => {
console.log(foydalanuvchilar)
// [{ id: 1, ism: 'Otabek', yosh: 19, shahar: 'Toshkent' }]
})

Ma’lumotni yangilash#

// Foydalanuvchi ma'lumotlarini yangilash
db.collection('foydalanuvchilar').doc({ id: 1 }).update({
yosh: 20
})

Ma’lumotni o’chirish#

// Foydalanuvchini o'chirish
db.collection('foydalanuvchilar').doc({ id: 1 }).delete()

Kengaytirilgan xususiyatlar#

Tartiblash va cheklash#

// Yoshga ko'ra tartiblash va birinchi 5 tasini olish
db.collection('foydalanuvchilar')
.orderBy('yosh', 'desc')
.limit(5)
.get()
.then(natija => {
console.log(natija)
})

Async/Await bilan ishlash#

async function foydalanuvchilarBilanIshlash() {
try {
// Ma'lumot qo'shish
await db.collection('foydalanuvchilar').add({
ism: 'Abdulaziz',
yosh: 25
})
// Ma'lumotlarni olish
const foydalanuvchilar = await db.collection('foydalanuvchilar').get()
console.log('Foydalanuvchilar:', foydalanuvchilar)
} catch (error) {
console.error('Xatolik:', error)
}
}

Kalitlar bilan ishlash#

O’z kalitlaringizni belgilashingiz mumkin:

// O'z kaliti bilan ma'lumot qo'shish
db.collection('foydalanuvchilar').add({
ism: 'Ulugbek',
yosh: 22
}, 'user-1')
// Kalit orqali ma'lumotni olish
db.collection('foydalanuvchilar').doc('user-1').get()

Real proyekt misoli: To-Do ilovasi#

class TodoApp {
constructor() {
this.db = new Ombor('todoApp')
}
// Yangi vazifa qo'shish
async addTodo(text) {
await this.db.collection('todos').add({
text: text,
completed: false,
createdAt: new Date()
})
}
// Barcha vazifalarni olish
async getTodos() {
return await this.db.collection('todos')
.orderBy('createdAt', 'desc')
.get()
}
// Vazifani bajarilgan deb belgilash
async completeTodo(todoId) {
await this.db.collection('todos')
.doc({ id: todoId })
.update({ completed: true })
}
// Vazifani o'chirish
async deleteTodo(todoId) {
await this.db.collection('todos')
.doc({ id: todoId })
.delete()
}
}
// Ishlatish
const todoApp = new TodoApp()
await todoApp.addTodo("Ombor JS o'rganish")
const todos = await todoApp.getTodos()
console.log(todos)

Debugging va sozlashlar#

Console loglarini o’chirish:

const db = new Ombor('db')
db.config.debug = false // Console loglarini o'chirish

Playground#

Ombor JS-ni bevosita brauzerda sinab ko’rish uchun interaktiv playground mavjud:

https://otabekoff.github.io/ombor/playground

Playground’da quyidagi imkoniyatlar mavjud:

Foydalanish holatlari#

Ombor JS quyidagi vazifalar uchun juda mos keladi:

Xulosa#

Ombor JS - bu zamonaviy veb-ilovalar uchun sodda va kuchli offline ma’lumotlar bazasi yechimi. Firebase’ning qulayligi va IndexedDB’ning ishonchliligini birlashtirgan bu kutubxona har qanday proyektda foydalanish uchun tayyor.

Batafsil ma’lumot va hujjatlar uchun: Ombor Docs

Eslatma: Zero errors, zero warnings, zero vulnerabilities, zero effort.