javascript 没有从Firebase计算就错误地列出了值,但怎么办?

icomxhvb  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(182)

我想根据人们的性别来筛选他们我已经将其写入Firebase实时数据库中的users/UID/gender/下,然后将用户在配置文件中选择的性别设置为true。If i render by v-if=“item.groups == ladies”Vue总是自动将其更改为false。
这似乎是同样的问题。
这一切都只是崩溃Vue所有的时间。太糟糕了。至少我可以通过显示用户的名字来呈现他们,但是其他的东西只会让页面看起来崩溃。如果时间到了,我需要使用Pinia,因为它可以一次处理所有物品,所以我需要自己找到,否则我不能一次将物品作为一个效果进行 Shuffle 。
祝你今天过得愉快
如果我用

<script setup>
import { getDatabase, ref as dbref, set, child, get, push } from "firebase/database";
import { getAuth } from "firebase/auth";
import { ref, reactive, watch } from "vue";
import "firebase/database";
import { useCounterStore } from '@/stores/login'

const store = useCounterStore()
    const database = getDatabase();
    const dbRef = dbref(getDatabase());;
    const data5 = ref([{ value: '' }]);
    const data6 = ref([{ value: '' }]);
    get(child(dbRef, '/users/')).then((snapshot) => {
      snapshot.forEach((userSnapshot) => {
        data5.value = snapshot.val();
        data6.value = userSnapshot.child("avatar").child("userimage").val()
      })  
    });
    const userimage2 = data6

</script>

<template>
    <div v-if="store.count > 0" class="title ladies"><h4>{{ $t('message.allusers') }}</h4><br/>
        <div>
            <v-row align="right" no-gutters class="galery">
                <TransitionGroup tag="article" name="fade">
                    <v-col class="--Surface-Variant profile-mini" v-for="(item, index) in data5">
                            <v-sheet class="pa-2 ma-2">
                                <p>
                                    <div>
                                        <v-img
                                          :width="100"
                                          aspect-ratio="16/9"
                                          cover
                                          :src='userimage2'
                                        ></v-img>
                                    </div>
                                    <h4>{{ item.username }}</h4>
                                </p>
                            </v-sheet>
                    </v-col>
                </TransitionGroup>
            </v-row>
        </div>
    </div>
</template>

<script>
  export default {
    data: () => ({
      alignments: [
        'start',
        'center',
        'end',
      ],
    }),
  }
</script>

一切正常,除了userSnapshot只提供一个图像,总是重复自己。当我在v-img:src中使用item.avatar.userimage时,它再次崩溃了Vue。
如果我使用computed,它与:src一起工作,但这似乎不正确:

get(child(dbRef, '/users/')).then((snapshot) => {
      snapshot.forEach((userSnapshot) => {
        data5.value = snapshot.val();
        data5.value2 = userSnapshot.child("avatar").child("userimage").val()
                const evenNumbers = computed(() => {
          return data5.value2;
        })
      })  
    });

再见。

n3ipq98p

n3ipq98p1#

问题在于没有使用ref(0)作为构造函数。我通过使用以下源代码修复了这个问题:

<script setup>
import { getDatabase, ref as dbref, set, child, get, push } from "firebase/database";
import { getAuth } from "firebase/auth";
import { ref, reactive, watch, computed, onMounted } from "vue";
import "firebase/database";
import { useCounterStore } from '@/stores/login'

const store = useCounterStore()
    const database = getDatabase();
    const dbRef = dbref(getDatabase());
    
    const data1 = ref(0)

    get(child(dbRef, '/users/')).then((snapshot) => {
      snapshot.forEach((userSnapshot) => {
        data1.value = snapshot.val();
      })  
    });
</script>
<template>
                <TransitionGroup tag="article" name="fade">
                <v-col v-for="(item, index) in data1" class="--Surface-Variant profile-mini">
                <v-div :key="item" v-if="item.groups.ladies" class="pa-2 ma-2">
                            <p>
                                <div>
                                    <v-img :height="185" :width="200" aspect-ratio="16/9" cover :key="item" :src="item.avatar.userimage"/>
                                </div>
                                <h4>{{ item.username }}</h4>

                            </p>
                </v-div></v-col>
                </TransitionGroup>
</template>

<script>
  export default {
    data: () => ({
      alignments: [
        'start',
        'center',
        'end',
      ],
    }),
  }
</script>

我仍然得到条纹,由于两个不同的性别在每一端的阵列。我不知道如何摆脱现在,我仍然挣扎着为所有人创建可见的用户配置文件,以及在非注册用户的情况下,如何向他们显示用户群。
再见。
这是关于构造函数的一个有趣的主题:How to get distinct values from an array of objects in JavaScript?
组件分为性别,似乎继承了旧的风格。谢谢

相关问题