简体   繁体   English

如何在本机反应中从firebase获取用户ID?

[英]How to get user id from firebase in react native?

I need your help I'm using firebase for my app.我需要你的帮助,我正在为我的应用程序使用 firebase。 I'm trying to get the users ID not the logged users no all users I have.我正在尝试获取用户 ID,而不是登录用户,而不是我拥有的所有用户。 I want to show their (uid) simply like in an alert for each user.我想像在每个用户的警报中一样显示他们的(uid)。 Also, I'm showing them in a flatlist and when I set item.uid in an alert it shows (undefined) .此外,我将它们显示在一个平面列表中,当我在警报中设置item.uid ,它会显示(undefined) But, all the other data of the user is shown correctly.但是,用户的所有其他数据都显示正确。 This what I did until now:这就是我到目前为止所做的:

** users.js ** ** 用户.js **

export default class usersList extends React.Component{

  state = {
    loading: false,
    uid: '',
    users: [],
    items: []
   };

   componentDidMount() {
        let itemsRef = f.database().ref('users').once('value').then(snapshot => {
               var data = snapshot.val();
               var items = Object.values(data);
               this.setState({items});
               console.log(snapshot.val())

            });
       }


  renderItem({item}) {
    return (
       <View key={index} style={{width: '100%', overflow:'hidden', marginBottom: 5, justifyContent:'space-between', borderBottomWidth:1, borderColor: 'grey'}}>
          <View>
          <View style={{padding:5, width:'100%', flexDirection: 'row', justifyContent: 'space-between'}}>

              <Text>{item.email}</Text>

          </View>
          </View>
        </View>
      )
  }

  render() {
   return (

     <View style={styles.container}>
     <ScrollView>
                {
                    this.state.items.length > 0
                    ? <ItemComponent items={this.state.items} navigation={this.props.navigation} />
                    : <Text>No stores</Text>
                }
                </ScrollView>
            </View>

  );
 }
 }

//ItemComponent.js //ItemComponent.js

export default class ItemComponent extends Component {

  static propTypes = {
      items: PropTypes.array.isRequired
  };

  render() {
    return (
      <View style={styles.itemsList}>
        {this.props.items.map((item, index) => {
            return (
                <View key={index}>
                <TouchableOpacity
                onPress={ () => alert(item.uid)}>
                    <Text style={styles.itemtext}>{item.email}</Text>
                    </TouchableOpacity>
                </View>
            )
        })}
      </View>
    );
  }
}
firebase.database().ref('user').on('value', (datasnapshot) => {
    this.setState({
       _id: datasnapshot.key
     });`

这个解决方案对我有用

<Text style={styles.yourStyleHere}>UID: {auth.currentUser?.uid} </Text>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM