Мы пытаемся запустить сценарий в could-shell, чтобы создать новую коллекцию Firestore в собственном режиме.
Однако он создает его в режиме хранилища данных по умолчанию.
Что следует изменить в наших флагах? --type=firestore-native
Код:
create_firestore() {
DB_EXISTS=$(gcloud firestore databases list --filter = "name=projects/'$PROJECT_ID'/databases/'$DB_NAME'" --format = "get(name)")
if [[ ! -n $DB_EXISTS ]]; then
echo -e "\n${COLOR}Creating Firestore...${NC}"
gcloud firestore databases create \
--database=$DB_NAME \
--location=$DB_REGION \
--type=firestore-native
else
echo -e "\n${COLOR}Firestore exists.${NC}"
fi
}
Я видел, что мы можем переключать режимы, когда БД пуста. И это также показывает, что мы используем правильный флаг.
Я с нетерпением жду ваших отзывов, чтобы понять, помогло ли предоставленное решение вам решить проблему. Если нет, я буду рад помочь дальше.
Как я уже упоминал выше, когда пробовал базу данных gcloud firestore databases create --location=us-east1 --type=firestore-native
, созданную только в собственном режиме.
А также я попытался воспроизвести проблему, используя ваш скрипт, жестко закодировав значения проекта и БД, как показано ниже. На этот раз мне также удалось создать базу данных в собственном режиме без каких-либо проблем.
#!/bin/sh
create_firestore() {
DB_EXISTS=$(gcloud firestore databases list --filter = "name=projects/xxx-dexx-xxx/databases/testdb" --format = "get(name)")
if [[ ! -n $DB_EXISTS ]]; then
echo -e "\n${COLOR}Creating Firestore...${NC}"
gcloud firestore databases create \
--database=testdb \
--location=us-central1 \
--type=firestore-native
else
echo -e "\n${COLOR}Firestore exists.${NC}"
fi
}
create_firestore
Вы можете обратиться к снимку экрана ниже, чтобы увидеть выходные данные после выполнения скрипта.
Поскольку вы не предоставили полный доступ к своему сценарию, я считаю, что проблема может возникнуть в какой-то другой части вашего сценария. Я предлагаю вам проверить ваш полный сценарий.
Примечание. Команда gcloud по умолчанию создаст базу данных в режиме Firestore. Поэтому нет необходимости явно использовать флаг --type.
Я могу создать
firestore in native mode
с помощью команды `gcloud Firestore Databases create --location=us-east1 --type=firestore-native`. Можете ли вы проверить, используете ли вы последнюю версию gcloud?