我无法从expo中的数据库(firebase)获取信息

wvt8vs2t  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(130)

我想在expo中获取信息firebase,但我不能,我得到这个错误
错误:子进程失败:路径参数为无效路径=“user/Carregando..."。路径必须为非空字符串,并且不能包含.""、“#"、“$"、“["或“]”
我也尝试过使用try和catch,但它基本上没有改变任何东西,我不知道错误是在代码中还是在expo中
尝试/捕获错误:错误:语法错误:C:\用户\bellu\OneDrive\桌面\开发\研究\研究数据库\App.js:意外标记,应为“from”(10:0)

import { useEffect, useState } from 'react';
import {Text, View } from 'react-native';

import { db } from './src/database';
import { onValue, ref } from 'firebase/database';

export default function App() {

  const [nome, setNome] = useState('Carregando...');

  useEffect(() => {
    
    function readData(){
      const start = ref(db, 'user/' + nome);
      onValue(start, (snapshot) => {
        const data = snapshot.val();
        setNome(data.nome)
      })
    }
    try {
      readData();
    } catch (err) {
      console.log(err)
    }
  }, [])

  return (
    <View style={{
      flex: 1,

      alignItems: 'center',
      justifyContent: 'center',
    }}>
      <Text>{nome}</Text>
    </View>
  );
}

我试着在数据库中获取信息,但我尝试不起作用

vfwfrxfs

vfwfrxfs1#

Firebase实时数据库中的路径不能包含任何.字符,因此您在此处为nome指定的默认值无效:

const [nome, setNome] = useState('Carregando...');

指定实际存在的用户名,或使用其他方法检测数据是否仍在加载,例如:

const [nome, setNome] = useState();
...
  <Text>{nome ? nome : 'Carregando...'}</Text>

相关问题