反应式Firestore存储库未在通量端点上发出新值

时间:2020-06-10 19:57:18

标签: java spring-boot google-cloud-firestore spring-data spring-webflux

我公开了一个提供用户流的终结点,即,只要插入了新用户,它就会发出该消息。

问题::这将返回所有先前存在的用户,但是如果我从Firestore控制台添加新用户,则不会发出新的插入值。

@RestController
public class UserController {

  @Autowired
  private UserRepository userRepository;

  @GetMapping(path = "/users", produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
  public Flux<User> getUsers() {

    return userRepository.findAll();
  }
}

存储库界面

public interface UserRepository extends FirestoreReactiveRepository<User> {

}

用户实体

@Document(collectionName = "users")
public class User {

  @DocumentId
  private String id;
  private String name;
}

对用户Web客户端进行采样以测试用户流:

@Slf4j
@SpringBootApplication
public class UserClient {

  @Bean
  WebClient getWebClient() {
    return WebClient.create("http://localhost:8080");
  }

  @Bean
  CommandLineRunner demo(WebClient client) {
    return args -> {
      client.get()
          .uri("/users")
          .accept(MediaType.APPLICATION_STREAM_JSON)
          .retrieve()
          .bodyToFlux(User.class)
          .subscribe(user -> {
            log.info(user.toString());
          });
    };
  }
  public static void main(String[] args) {
    new SpringApplicationBuilder(UserClient.class).properties(java.util.Collections.singletonMap("server.port", "8081"))
        .run(args);
  }
}




0 个答案:

没有答案