Я создаю приложение, в котором пользователи могут голосовать за сообщения и создавать свои собственные сообщения. Поскольку в документе может храниться не более 1 Мб, я не знаю, чтобы отслеживать уникальные голоса и количество голосов.
Когда я создаю нового пользователя, я создаю его так:
collection('users').document(user.uid).setData({
'name': name + ' ' + surname,
'email': user.email,
'registerDate' : DateTime.now(),
'isEmailVerified': user.isEmailVerified,// TODO: Email Verification
'location': location,
'photoUrl': user.photoUrl,
'posts' : [],
});
Когда я создаю новое сообщение, я создаю его следующим образом:
collection('posts').document(imageId).setData({
'userId': user.uid,
'user' : user.displayName,
'title' : title,
'post' : post,
'location': location,
'postDate' : DateTime.now(),
'upVote' : 1,
'downVote' : 0,
'absVote' : 0,
'votedBy' : [user.uid], // list of users who voted the post.
});
Я также добавляю сообщение в массив сообщений пользователя.
Я думаю, что я делаю ошибку из-за 'votedBy' поле в коллекции 'posts'. Это поле может заполнить максимальный размер документа, который составляет 1 МБ. Есть ли лучший подход для отслеживания голосов?
Я думаю, что я также не могу хранить голоса в коллекции пользователей. В случае, если пользователь проголосует за слишком много сообщений, ограниченный размер будет снова превышен.