我正在尝试使用python将firestore上新文档的文档ID添加到对象本身,但是添加时它会缩短字符串,而实际上并没有添加相同的ID。
我已经打印了ID,并说它应该是相同的。虽然在firestore中与众不同。
doc_ref = db.collection(u'prime_location').document()
print('ID: ', doc_ref.id)
docId = doc_ref.id
# set object and push to firebase
doc_ref.set({
u'property_id': docId,
u'property_address': address,
u'number_of_beds': number_beds,
u'number_of_baths': number_baths,
u'property_rent': property_price,
u'post_code': postcode,
u'property_photo': property_image,
})
例如,文档的ID为:“ aMqwOsjDbOuQmi8PZmot”,但“ property_id”值显示为:“ YU1xd09zak ...”。有人知道为什么会发生这种行为吗?
答案 0 :(得分:2)
之所以会这样,是因为您生成了两次随机ID。
doc_ref = db.collection(u'prime_location').document()
print('ID: ', doc_ref.id) //generates one id
docId = doc_ref.id //generates the second id
要解决此问题,您只需调用一次doc_ref.id
就可以生成一个id,就像下面的代码行一样:
doc_ref = db.collection(u'prime_location').document()
docId = doc_ref.id //generates id
print('ID: ', docId) //print the generatd id
然后在代码中进一步使用docId
变量和 not doc_ref.id
,每次调用该变量都会生成另一个id。