首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加用户displayname

添加用户displayname
EN

Stack Overflow用户
提问于 2019-01-02 13:02:12
回答 2查看 502关注 0票数 0

如何在FireStore中添加DisplayName?我读过firebase no displayname for userfirebase user photourl and displaynamethis,但它们都不工作,因为它们都指的是Firebase而不是Firestore。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-02 13:26:59

您可以创建在创建帐户时触发的云函数

代码语言:javascript
复制
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对象中设置的。因此,您可能希望设置一个默认占位符,以便稍后查询并要求用户提供其信息。

票数 0
EN

Stack Overflow用户

发布于 2019-01-02 21:19:39

代码语言:javascript
复制
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');
    }
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54001429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档