Добавить отображаемое имя пользователя - PullRequest
0 голосов
/ 02 января 2019

Как мне добавить DisplayName в FireStore?Я прочитал firebase no displayname для пользователя и firebase user photourl и displayname и this , но ни один из них не работает, поскольку все они ссылаются на Firebase, а не на Firestore.

Ответы [ 2 ]

0 голосов
/ 02 января 2019
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 голосов
/ 02 января 2019

Вы можете создать облачную функцию, которая будет запускаться при создании учетной записи как таковой

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. Так что вы можете захотеть установить заполнитель по умолчанию, который вы можете запросить позже и попросить пользователя предоставить информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...