Я делал небольшое приложение для чата, используя Angular и Firebase.Я столкнулся с некоторыми проблемами с уникальностью, хотя.В приложении есть общедоступные каналы, и я хочу, чтобы названия каналов были уникальными.Я использовал ключ, чтобы навязать уникальность, но мне было интересно, есть ли лучший способ сделать это.Вот мои текущие правила проверки.
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"public-channels": {
"$name": {
".validate": "!root.child('public-channels').child($name).exists()"
}
}
}
}
Вот пример данных
{
"public-channels" : {
"test1" : {
"displayName" : "Test1"
},
"test2" : {
"displayName" : "Test2"
}
}
}
Знаете ли вы, есть ли решение этой проблемы, где данные могут быть структурированы какСтандартные данные списка, которые используют uid в качестве ключа и по-прежнему обеспечивают уникальность на уровне базы данных?
Формат данных, который я хотел бы использовать, выглядит следующим образом:
{
"public-channels": {
"SomeUID": {
"name": "Channel Name" // This value should be unique
}
}
}
Причина желанийэта структура состоит в том, что есть некоторые символы, которые нельзя использовать в пути к значению (".", "#", "$", "[" или "]"), и я хотел бы разрешить эти символыв названиях каналов.