Проблемы с пожарной базой - PullRequest
       8

Проблемы с пожарной базой

0 голосов
/ 29 октября 2018

Я изучаю android studio, и в следующем разделе руководства, посвященного Firebase, кардинально изменился дизайн, и я застрял в руководствах.

На этом шаге я должен подключить свое приложение с помощью Firebase и загрузить (сохранить) данные в FireBase, но я не могу заставить его взаимодействовать с моим кодом.

Я совершенно не понимаю, как я собираюсь создать базу данных, я попробовал следующее:

  1. Добавить коллекцию -> Идентификатор коллекции: Пользователи -> Поле: Пользователи -> Значение: Истина

но когда я запускаю приложение, в firebase ничего не появляется?

Это код, который я вставил в свое приложение:

LOGIN CLASS

import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Toast
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.FirebaseUser
import com.google.firebase.database.FirebaseDatabase
import kotlinx.android.synthetic.main.activity_login.*


class Login : AppCompatActivity() {

    private var mAuth:FirebaseAuth?=null

    private var database=FirebaseDatabase.getInstance()
    private var myRef=database.reference

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)
        mAuth=FirebaseAuth.getInstance()

    }

    fun buLoginEvent(view:View){

        LoginToFirebase(etEmail.text.toString(),etPassword.text.toString())
    }

    fun LoginToFirebase(email:String,password:String){
        mAuth!!.createUserWithEmailAndPassword(email,password)
            .addOnCompleteListener(this){task ->

                if(task.isSuccessful){
                    Toast.makeText(applicationContext,"Successful login", Toast.LENGTH_LONG).show()

                    val currentUser=mAuth!!.currentUser
                    // Save in database
                    if(currentUser!=null) {

                        myRef.child("Users").child(SplitString(currentUser.email.toString())).setValue(currentUser.uid)
                    }

                    LoadMain()
                }else{
                    Toast.makeText(applicationContext,"Login failed", Toast.LENGTH_LONG).show()
                }
            }
    }

    override fun onStart() {
        super.onStart()
        LoadMain()
    }

    fun LoadMain(){
        val currentUser=mAuth!!.currentUser

        if(currentUser!=null) {

            var intent=Intent(this, MainActivity::class.java)
            intent.putExtra("email", currentUser.email)
            intent.putExtra("uid", currentUser.uid)

            startActivity(intent)
        }
    }

    fun SplitString(str:String):String{
        var splitStr=str.split("@")
        return splitStr[0]
    }
}

ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ

// Database instance
    private var database= FirebaseDatabase.getInstance()
    private var myRef=database.reference

    var myEmail:String?=null

    private var mFireBaseAnalytics:FirebaseAnalytics?=null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        mFireBaseAnalytics= FirebaseAnalytics.getInstance(this)

        val b:Bundle=intent.extras
        myEmail=b.getString("email")
    }

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

Прежде всего, вы должны создать дочернего пользователя с идентификатором, обычно токеном . Внутри этого вы создадите еще одного ребенка с именем images или что-то еще. Теоретически, этот метод облегчит вам поиск информации; D

0 голосов
/ 30 октября 2018

Согласно вашим комментариям, я понимаю, что аутентификация работает отлично, и вы пытаетесь добавить некоторые данные в базу данных. Как я вижу в вашем коде, вы пытаетесь добавить данные в базу данных Firebase в реальном времени, а не в Cloud Firestore. Как я вижу в вашем коде, вы используете методы, которые являются частью SDK базы данных Firebase в реальном времени, а не Cloud Firestore, который является совершенно другим продуктом. Если вы добавляете данные в базу данных Firebase в реальном времени, вы должны выбрать вкладку Raltime Database , как показано на следующем рисунке:

enter image description here

0 голосов
/ 29 октября 2018

Я предлагаю вам проверить вкладку Authentication в Firebase, если кто-то из пользователей заметил, то это означает, что ваш код работает, если не замечен, значит, есть проблема в вашем коде. проверьте изображение ниже для ясности на Authentication

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...