因此,我目前正在從事一個(gè)項(xiàng)目,在該項(xiàng)目中,我使用Firebase和Google作為唯一的sign-in/up提供者實(shí)現(xiàn)了身份驗(yàn)證。身份驗(yàn)證過(guò)程工作得很好,但是我想為經(jīng)過(guò)身份驗(yàn)證的用戶添加更多和高度特定的屬性,并能夠操縱這些屬性。為此,我計(jì)劃使用GoogleFirestore。
現(xiàn)在的問(wèn)題是,如何將創(chuàng)建的用戶帳戶從firebase auth鏡像到firestore。我曾考慮在每次調(diào)用signIn函數(shù)時(shí)根據(jù)UID將其寫(xiě)入firestore,但問(wèn)題是,我認(rèn)為同一個(gè)用戶將有多個(gè)條目。
我在一些博客上讀到,使用云功能可以實(shí)現(xiàn)預(yù)期的結(jié)果,但是我正在尋找一個(gè)可以在下一個(gè)項(xiàng)目中實(shí)現(xiàn)的解決方案,即使我以后可能會(huì)切換到云功能。
你知道我怎樣才能達(dá)到預(yù)期的結(jié)果嗎?謝謝你的幫助,非常感謝!
您在回答中描述的方法(即“將創(chuàng)建的用戶帳戶從Firebase auth鏡像到Firestore”)確實(shí)是一種標(biāo)準(zhǔn)方法。
您提到以下風(fēng)險(xiǎn):
如果問(wèn)題是“如何處理不同用戶使用同一用戶的文檔ID的風(fēng)險(xiǎn)”,如果使用身份驗(yàn)證服務(wù)生成的用戶ID(
uid
)作為文檔ID,則可以確保它是唯一的。如果問(wèn)題是“如何為一個(gè)用戶創(chuàng)建多個(gè)包含不同信息的用戶文檔”,那么您可以很好地使用不同的集合,并再次使用身份驗(yàn)證服務(wù)生成的用戶ID(
uid
)作為文檔ID(每個(gè)文檔都在不同的集合中)。創(chuàng)建Firestore用戶文檔基本上有兩個(gè)選項(xiàng):
通過(guò)云函數(shù):在這種情況下,您將在用戶創(chuàng)建時(shí)觸發(fā)云函數(shù),并使用用戶的uid創(chuàng)建Firestore文檔。
從front-end:您需要設(shè)置一個(gè)安全規(guī)則,允許用戶僅在文檔ID等于其用戶ID時(shí)創(chuàng)建自己的Firestore用戶文檔。以下是一個(gè)示例: