Импортировать тип Firestore DocumentEventData в проект Java

Я пытаюсь следовать этому уроку.

Я хочу иметь возможность писать триггеры событий Cloud Function в моем проекте среды выполнения Java 17 кода Visual Studio. В приведенной выше ссылке есть фрагмент, который я пытаюсь скопировать. Но я не могу устранить ошибку импорта.

импортировать com.google.events.cloud.firestore.v1.DocumentEventData; Импорт com.google.events не может быть разрешен Java (268435846)

Другой импорт мне удалось исправить, изменив файл pom.xml. Ниже приведен фрагмент и текущий файл pom. Я пробовал добавлять различные зависимости к файлу POM, но все равно не смог это исправить.

import com.google.cloud.functions.CloudEventsFunction;
import com.google.events.cloud.firestore.v1.DocumentEventData;
import com.google.protobuf.InvalidProtocolBufferException;
import io.cloudevents.CloudEvent;
import java.util.logging.Logger;

public class FirebaseFirestore implements CloudEventsFunction {
  private static final Logger logger = Logger.getLogger(FirebaseFirestore.class.getName());

  @Override
  public void accept(CloudEvent event) throws InvalidProtocolBufferException {
    DocumentEventData firestorEventData = DocumentEventData.parseFrom(event.getData().toBytes());

    logger.info("Function triggered by event on: " + event.getSource());
    logger.info("Event type: " + event.getType());

    logger.info("Old value:");
    logger.info(firestorEventData.getOldValue().toString());

    logger.info("New value:");
    logger.info(firestorEventData.getValue().toString());
  }
}
 <dependencies>
    <dependency>
      <groupId>com.google.cloud.functions</groupId>
      <artifactId>functions-framework-api</artifactId>
      <version>1.1.0</version>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>4.27.1</version>
    </dependency>
     <dependency>
      <groupId>com.google.firebase</groupId>
      <artifactId>firebase-admin</artifactId>
      <version>9.3.0</version>
    </dependency>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-core</artifactId>
      <version>2.39.0</version>
    </dependency>
  </dependencies>

Я не Java-разработчик, но думаю, вам нужны google-cloudevent-types , который должен быть доступен в Maven здесь

DazWilkin 16.06.2024 19:13
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
70
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете добавить следующие коды в свой pom.xml:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>proto-google-cloud-firestore-v1</artifactId>
  <version>1.46.0</version>
</dependency>

хм... я новичок в этом. я получаю... Отсутствует артефакт com.google.cloud:proto-google-cloud-firestore-v1:jar:1.46.0J‌​ava(0).. даже если я изменю версию d на последнюю

user7888262 17.06.2024 03:47
Ответ принят как подходящий

Поскольку вы используете Java, чтобы заставить его работать, как отметил @DazWilkin в своем комментарии, вам нужно использовать google-cloudevent-types , который доступен в репозитории Maven , и тогда вы иметь возможность импортировать класс DocumentEventData.

Добавьте следующее в ваш pom.xml:

<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloudevent-types</artifactId>
    <version>0.15.0</version>
</dependency>

Спасибо. Это сработало, когда я попробовал комментарий @DazWilkin.

user7888262 18.06.2024 16:28

Другие вопросы по теме