Хранить объект Firebase с идентификатором пользователя и чем-то пост_ид - PullRequest
0 голосов
/ 20 июня 2019

У меня есть ионно-угловой проект.Я пытаюсь разработать что-то вроде канала, где вы можете публиковать обновления (как в Facebook).

Я использую бэкэнд Firebase и хочу сохранить публикацию пользователей в этой структуре: Posts/uid/post_id/[POST DATAS], но я не знаю, как сделать что-то вроде auto_increment в mysql для post_id.

createPost() {
    this.post.uid = firebase.auth().currentUser.uid;
    this.post.created_at = Date.now();
    this.post.comments = null;
    this.post.dislikes = 0;
    this.post.likes = 0;


    this.afDatabase.object(`post/${this.post.uid}/${--HERE I WANT TO SET THE POST ID--}`).set(this.post);
    this.postSuccessfulAlert();
  }

1 Ответ

1 голос
/ 20 июня 2019
but I don't know how to do something like auto_increment in mysql for the post_id.

Firebase / Firestore, насколько я знаю, не имеет функции автоинкремента.Если вы создаете новый документ, firebase автоматически назначит новый уникальный идентификатор для этого документа, если вы не укажете идентификатор для использования.

Если вы хотите, чтобы сгенерированный идентификатор документа был выполнен заранее (поскольку вы используете set метод), тогда вы можете назначить docRef и получить идентификатор.

пример:

const newDoc   = firestoreInstance.collection(`post/${this.post.uid}/posts).doc();
const newDocId = newDoc.id;

Firebase использует Firebase Timestamp для своих дат, тогда как вы устанавливаете js-дату для this.post.created_at Вместо этого следует использовать временную метку Firebase:

const serverTimestamp = firestoreAdmin.firestore.Timestamp.now();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...