firebase - Is there any limit on number of indexes -
i new firebase.we have application creates notifications users.the same notification might delivered multiple users. have structured data follows optimize data storage cost:
notifications { message1 { tiltle:"abc", desc:"desc" user1 : true user2 : true user3 : true } message2 { tiltle:"efg", desc:"desc" user1 : true user2 : true user3 : true } }
the users query messages using orderbychild("<userid>").equalto(true)
.
we cannot use array of users attached messages user can mark message read in case need remove user message.
now problem see queries slow. further see warning firebase says use indexes while performing queries on child nodes. number of users keep increasing, mean need create index whenever new user signs up.
given situation, wondering if there limit on number of indexes can created?also impact of creating large number of indexes?
when using nosql you'll end modeling data use-cases need in application. current use-case "get messages user", not ideal data structure. you're making database consider messages each query. while may normal practice in relational databases, nosql it's better model differently.
given use-case "get messages user", data model makes sense:
notifications: { message1: { tiltle:"abc", desc:"desc" user1 : true user2 : true user3 : true } message2: { tiltle:"efg", desc:"desc" user1 : true user2 : true user3 : true } }, messages_per_user: { user1: { message1: true message2: true } user2: { message1: true message2: true } user3: { message1: true message2: true } }
now if want load messages user, do:
ref.child('messages_per_user').child('user1').on('value', function(snapshot) { snapshot.foreach(function(messagesnapshot) { ref.child('notifications').child(messagesnapshot.key).once('value', function(notificationsnapshot) { console.log(notificationsnapshot.val()); }) }); });
this way database can directly access correct nodes , ignore else.
recommended reading:
Comments
Post a Comment