Единственный способ использовать поставщиков значений - это ParDos и Combines. Невозможно передать провайдер значения при создании, но вы можете определить DoFn, который возвращает провайдер значения, который вы передаете ему в конструкторе:
class OutputValueProviderFn(beam.DoFn):
def __init__(self, vp):
self.vp = vp
def process(self, unused_elm):
yield self.vp.get()
И в вашем конвейере вы бы сделалиследующее:
user_options = pipeline_options.view_as(UserOptions)
with beam.Pipeline(options=pipeline_options) as p:
my_value_provided_pcoll = (
p
| beam.Create([None])
| beam.ParDo(OutputValueProviderFn(user_options.firestore_document))
Таким образом, вы не сможете использовать его в Create, поскольку это невозможно, но вы все равно можете получить его в PCollection.