Firebase-болт дает ошибку ***TYPE RECURSION***"
У меня есть следующие определения типов в моем.bolt файле с именем tasks.bolt
//...
type Channel {
name: ShortNonEmptyString,
tasks: Map<TaskId, Task>,
members: Map<UserId, User>
}
type User {
displayName: ShortNonEmptyString,
tasks: Map<UserId, Task>,
channels: Map<ChannelId, Channel>
}
type ChannelId extends String {
validate() { this.length <= 20 }
}
type TaskId extends String {
validate() { this.length <= 20 }
}
type UserId extends String {
//XXX: min. max. length of the user's ID?
validate() { this.length >= 10 }
}
type Percent {
validate() { this >= 0 && this <= 1 }
}
type State {
//TODO: check in client
validate() { this >= 0 && this <= 3 }
}
type ShortNonEmptyString extends String {
validate() { this.length > 0 && this.length < 16}
}
//...
После компиляции (firebase-bolt Я понимаю, что это рекурсия, потому что у типа Channel есть Пользователи, а у Пользователей есть Каналы. Это нормальное поведение компилятора болтов? Является ли мое определение типа правильным? Мой подход хорош? Спасибо за помощь!"channels": {
"$key4": {
".validate": "$key4.length <= 20 && ***TYPE RECURSION***"
},
".validate": "newData.hasChildren()"
}