Попытка записать данные в базу данных пожарной базы Firebase - React Native - PullRequest
0 голосов
/ 10 сентября 2018

Я создаю собственное приложение, которое взаимодействует с базой данных FireStore на базе FireStore.У меня есть функция writeUserData, которая записывает данные в базу данных, но по какой-то причине она не работает.Я вызываю writeUserData внутри функции signIn, которая получает данные из API Google и устанавливает состояние для этих входящих данных пользователя.Когда пользователи нажимают «Войти в Google», данные из Google должны быть записаны в базу данных.Я попытался console.logging функции, но это дает мне "отменено".Может кто-нибудь подсказать мне, как именно я могу заставить функцию работать?

Это мой код:

import React, { Component } from 'react';
import { View, Text, Button, StyleSheet, AsyncStorage } from 'react-native';
import Expo from 'expo';
// import * as firebase from 'firebase';

const firebase = require('firebase');
require('firebase/firestore');

const config = {
	apiKey: 'AIzaSyBs-KPrW3sEOLAPze6OUs7DRfUThQxsDiU',
	authDomain: 'dcot-consumer-57fc1.firebaseapp.com',
	databaseURL: 'https://dcot-consumer-57fc1.firebaseio.com',
	projectId: 'dcot-consumer-57fc1',
	storageBucket: 'dcot-consumer-57fc1.appspot.com',
	messagingSenderId: '977008301053'
};

if (!firebase.apps.length) {
	firebase.initializeApp(config);
}

class WelcomeScreen extends Component {
	constructor(props) {
		super(props);
		this.state = {
			userid: '',
			name: '',
			email: '',
			photoUrl: '',
			address_id: ''
		};
	}

	writeUserData(userid, name, email, photoUrl, address_id) {
		firebase.firestore();
		db
			.collection('Users')
			.add({
				userid,
				name,
				email,
				photoUrl,
				address_id
			})
			.then(function(docRef) {
				console.log('Document written with ID:', docRef.id);
			})
			.catch(function(error) {
				console.error('Error adding document: ', error);
			});
	}

	signIn = async () => {
		try {
			const result = await Expo.Google.logInAsync({
				androidClientId: '798299773620 - qq7u46ort6mn6du5v9obpc8une9l44v0.apps.googleusercontent.com',
				iosClientId: '798299773620-m37gc243ps4nu8bnb1o7mp7dl4ooi67g.apps.googleusercontent.com',
				scopes: ['profile', 'email']
			});
			console.log(result);
			if (result.type === 'success') {
				this.setState({
					userid: result.user.id,
					name: result.user.name,
					email: result.user.email,
					photoUrl: result.user.photoUrl
				});
				AsyncStorage.setItem('gToken', result.user.id);
				this.props.navigation.navigate('Registration', {
					userid: result.user.id,
					name: result.user.name,
					email: result.user.email,
					photoUrl: result.user.photoUrl,
					address_id: ''
				});
				this.writeUserData;
				console.log(writeUserData);
			} else {
				console.log('cancelled');
			}
		} catch (e) {
			console.log('cancelled');
		}
	};

	render() {
		return (
			<View style={styles.container}>
				<Text> Welcome to Innopay's Consumer app! </Text>
				<Button onPress={() => this.signIn()} title="Sign in With Google" color="#3B5998" />
			</View>
		);
	}
}

export default WelcomeScreen;

const styles = StyleSheet.create({
	container: {
		flex: 1,
		backgroundColor: '#fff',
		alignItems: 'center',
		justifyContent: 'center'
	}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...