Я пытаюсь следовать этому уроку.
Я хочу иметь возможность писать триггеры событий 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>
Вы можете добавить следующие коды в свой 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.0Java(0).. даже если я изменю версию d на последнюю
Поскольку вы используете 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.
Я не Java-разработчик, но думаю, вам нужны google-cloudevent-types , который должен быть доступен в Maven здесь