недопустимые типы 'интервал [интервал]' для нижнего индекса массива

Ваше правило if request.resource.data.m != resource.data.m гласит, что поле m может быть записано, только если оно не совпадает с текущим значением поля m в том же документе .

Нет способа проверить наличие дубликатов во всей коллекции, так как для этого потребуется Cloud Firestore для чтения всех документов в коллекции (которая не масштабируется).

Единственный способ реализовать ограничение уникальности - создать отдельную коллекцию, в которой вы используете m в качестве идентификаторов документов. Поскольку идентификаторы документов в коллекции по определению уникальны, вы можете применить там правило с помощью:

match /unique_ms/{m} {
  allow create;
}

Вышеуказанное позволяет только создать документ, но не позволяет его обновить. Это означает, что если кто-то создал документ с определенным значением m, никто не сможет его перезаписать.

Альтернативой с использованием правила write может быть:

allow write: if !exists(/databases/$(database)/documents/unique_ms/{m});

Также см .:

7
задан user33061 12 December 2008 в 19:25
поделиться

4 ответа

Вы преобразовываете трехмерную антенную решетку в нижний индекс myArray[10][10][10] четыре раза myArray[i][t][x][y]. Необходимо будет, вероятно, добавить другой размер к массиву. Также рассмотрите контейнер как Повышение. MultiArray, хотя это, вероятно, находится вне Вашего понимания в этой точке.

14
ответ дан 6 December 2019 в 08:17
поделиться

Что измениться? Кроме 3 или 4 размерных проблем массива, необходимо избавиться от магических чисел (10 и 9).

const int DIM_SIZE = 10;
int myArray[DIM_SIZE][DIM_SIZE][DIM_SIZE];

for (int i = 0; i < DIM_SIZE; ++i){
    for (int t = 0; t < DIM_SIZE; ++t){            
        for (int x = 0; x < DIM_SIZE; ++x){
5
ответ дан 6 December 2019 в 08:17
поделиться
int myArray[10][10][10];

должен быть

int myArray[10][10][10][10];
2
ответ дан 6 December 2019 в 08:17
поделиться

Вы пытаетесь получить доступ к 3 размерным массивам с 4, разыменовывает

Вам только нужны 3 цикла вместо 4, или int myArray[10][10][10][10];

1
ответ дан 6 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: