Сохраните действия пользователя из учетной записи facebook или OAuth в базе данных

# #javascript #firebase #vue.js #nuxt.js

Вопрос:

я попытался войти в систему с помощью facebook в firebase . Итак , как я сохраняю информацию о пользователе, такую как : адрес электронной почты, имя пользователя, … в базе данных . и я не знаю, что делать дальше, чтобы узнать или сохранить, когда они выполняли какие-то действия, например, они нажимали, чтобы заказать некоторые товары на моем веб-сайте .затем в следующий раз, когда они войдут в систему со старым facebook . если я администратор, как я получаю данные из базы данных ? (@nuxtjs/firebase) что мне делать дальше? я пытался искать 2 месяца назад.

 <template>
  <div>
    <v-row no-gutters>
      <v-col cols="12" md="12" sm="12">
        <v-card>
          <v-row no-gutters>
            <v-col cols="12" md="12" sm="12">
              <v-form @submit.prevent="loginUser">
                <v-col cols="12" md="12" sm="12">
                  <v-text-field
                    type="email"
                    error-count=""
                    placeholder=""
                    label="email"
                    append-icon="mdi-email"
                    v-model="email"
                    outlined
                    color
                  ></v-text-field>
                </v-col>
                <v-col cols="12" md="12" sm="12">
                  <v-text-field
                    type="email"
                    error-count=""
                    placeholder=""
                    label="password"
                    append-icon="mdi-password"
                    v-model="password"
                    outlined
                    color
                  ></v-text-field>
                </v-col>
                <v-col cols="12" md="12" sm="12">
                  <v-btn medium elevation="" color="primary" type="submit"
                    >login</v-btn
                  >
                </v-col>
                <v-col cols="12" md="12" sm="12">
                  <v-btn
                    medium
                    elevation=""
                    color="primary"
                    type=""
                    @click="loginWithFacebook()"
                    >log in with facebook</v-btn
                  >
                </v-col>
              </v-form>
            </v-col>
          </v-row>
        </v-card>
      </v-col>
    </v-row>
  </div>
</template>

<script>
export default {
  data: () => ({
    email: '',
    password: '',
  }),
  methods: {
    async loginUser() {
      try {
        const response = await this.$fire.auth.signInWithEmailAndPassword(
          this.email,
          this.password
        )
        console.log(response)
        this.$router.replace({ name: 'test1' })
      } catch (e) {
        console.error(e)
      }
    },
    async loginWithFacebook() {
      try {
        const provider = new this.$fireModule.auth.FacebookAuthProvider()
        let authData = await this.$fire.auth.signInWithPopup(provider)
        console.log(authData)
      } catch (e) {
        console.error(e)
      }
    },
  },
}
</script>

<style></style>
 

Ответ №1:

Если у вас проблема с входом в систему, вы можете проверить статус пользователя (вошел в систему или вышел из системы) с помощью чего-то вроде этого:

 this.$fire.auth.onAuthStateChanged(user => { 

  if (user) {          

    this.$store.state.user.loguedin = true;  

    this.loguedin = true;

  } else {

    this.loguedin = false;    
    this.$router.push('/login');

  }

});
 

Комментарии:

1. хорошо , спасибо, на следующем шаге я не знаю, как объяснить 555😂 . если они изменили новое имя пользователя что-то в этом роде , я просто хочу знать, как мы узнаем этого пользователя ? например: они вошли на мой сайт и заказали 1 товар , а затем изменили имя пользователя? Итак , я просто знаю логику обработки активности пользователя в базе данных . Что я сначала попробовал аутентификацию в firebase

2. Задавайте по одному вопросу за раз и будьте как можно более ясны в отношении проблемы, которую вы хотите решить. Как только вы решите эту проблему, вы можете задать новый вопрос, а не здесь, в комментариях.

3. хорошо, спасибо всем