【问题标题】:How To Sort Firebase Joined Query如何对 Firebase 加入的查询进行排序
【发布时间】:2021-01-27 21:50:45
【问题描述】:

我是 firebase 新手,我有一个疑问

const posts = database.child('posts');
const user = database.child('user');

posts.orderByChild("id").on('child_added', snap => {
    let user_id = snap.val().user_id;

    let userRef = database.child('user/' + snap.val().user_id)
userRef.on('value', userSnap => {
        console.log(userSnap.val().name)
        let content = snap.val().content;
        let date_posted = snap.val().date_posted;
        let id = snap.val().id;
        let title = snap.val().title;
        let user_id = snap.val().user_id;
        let user_Name = userSnap.val().name;
        a.push({
            "id": id,
            "title": title,
            "date_posted": date_posted,
            "content": content,
            "user_Name": user_Name,
            "user_id": user_id
        })
    });

});


在进入UserRef Query之前,帖子已经用id排序好了, 但是在第二次查询之后,它不再排序,即使在第二次查询之后,我怎样才能使它们排序

这是数据库结构 !:

我希望输出是这样的

{
    id: 1,
    title: 'My First  Post',
    date_posted: '2018-05-02 19:40:02',
    content: 'This is my firstpost!',
    user_Name: 'Abdelrahman',
    user_id: '8721da2c-0028-430f-a995-0d03c8abb393'
  },
  {
    id: 2,
    title: 'My SecondPost',
    date_posted: '2018-05-02 19:41:02',
    content: 'This is my Second post!',
    user_Name: 'Abdelrahman',
    user_id: '8721da2c-0028-430f-a995-0d03c8abb393'
  },
  {
    id: 3,
    title: 'test Title',
    date_posted: '2021-01-06 08:48:01',
    content: 'test Content',
    user_Name: 'Abdelrahman',
    user_id: '8721da2c-0028-430f-a995-0d03c8abb393'
  },
  {
    id: 4,
    title: 'test Title2',
    date_posted: '2021-01-06 08:49:42',
    content: 'test Content2',
    user_Name: 'Abdelrahman',
    user_id: '8721da2c-0028-430f-a995-0d03c8abb393'
  },
  {
    id: 5,
    title: 'test 3',
    date_posted: '2021-01-06 08:54:14',
    content: 'COntent 3',
    user_Name: 'Abdelrahman',
    user_id: '8721da2c-0028-430f-a995-0d03c8abb393'
  }

但我看到的输出根本没有排序

【问题讨论】:

  • 你可以在你的主文件中设置axios头文件,你可以把它保存在localstorage中。因此,每次您发送请求时,axios 都会检查您的本地存储中是否有访问令牌,您不必再担心身份验证。对不起,如果我弄错了

标签: node.js firebase firebase-realtime-database


【解决方案1】:

通常您将令牌作为状态存储在 vuex 中。在您的方法中,您提交一个突变以设置令牌状态,例如:

 this.$store.commit('SET_TOKEN', res.data)

在商店里你将拥有

state: {
  token: '',
},
mutations: {
  SET_TOKEN(state, payload) {
  state.token = payload.token
}

这只是一个示例,可根据您得到的响应进行调整。

如果你需要保持你应该使用的状态vuex persisted state

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多