如何在FireStore中添加DisplayName?我读过firebase no displayname for user、firebase user photourl and displayname和this,但它们都不工作,因为它们都指的是Firebase而不是Firestore。
发布于 2019-01-02 13:26:59
您可以创建在创建帐户时触发的云函数
functions.auth.user().onCreate(event => {
const firebaseUser = event.data;
return firebase.firestore().collection("users").doc(firebaseUser.uid).set({
name: firebaseUser.displayName || "n/a"
});
});这将在一个名为users的集合中为用户创建一个文档,该文档由用户的UID标识。注意,displayName不一定是在auth user对象中设置的。因此,您可能希望设置一个默认占位符,以便稍后查询并要求用户提供其信息。
发布于 2019-01-02 21:19:39
var config = {
apiKey: "REPLACE_WITH_YOUR_FIREBASE_PROJECT_CREDENTIAL",
authDomain: "REPLACE_WITH_YOUR_FIREBASE_PROJECT_CREDENTIAL",
databaseURL: "REPLACE_WITH_YOUR_FIREBASE_PROJECT_CREDENTIAL",
projectId: "REPLACE_WITH_YOUR_FIREBASE_PROJECT_CREDENTIAL",
storageBucket: "REPLACE_WITH_YOUR_FIREBASE_PROJECT_CREDENTIAL",
messagingSenderId: "REPLACE_WITH_YOUR_FIREBASE_PROJECT_CREDENTIAL"
};
firebase.initializeApp(config);
// Initialize Cloud Firestore through Firebase
var firestore = firebase.firestore();
const settings = {/* your settings... */ timestampsInSnapshots: true};
firestore.settings(settings);
firebase.auth().onAuthStateChanged(function(user) {
//check if user is signed in
if (user) {
//user is signed in
//get user display
if (user.displayName !== undefined) {
var username = user.displayName;
//add displayName to firestore
firestore
.collection("users")
.doc(user.uid)
.set({
username: username
}, {merge: true})
.then(function() {
alert('displayName added!');
})
.catch(function(e) {
//there was an error writing to firestore
//check console
console.log(e);
});
} else {
//user has not set displayName
alert('no displayName');
}
}
});https://stackoverflow.com/questions/54001429
复制相似问题