我公开了一个提供用户流的终结点,即,只要插入了新用户,它就会发出该消息。
问题::这将返回所有先前存在的用户,但是如果我从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);
}
}