Как сохранить пользовательские значения без входа в систему, а затем добавить поля данных в текущее пользовательское значение из какого-либо другого действия? - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу создать игровое приложение в android kotlin, используя firestore. Когда пользователь впервые входит в приложение, он вводит «имя», которое я хочу сохранить в firestore.Когда он отправляет имя, он переходит к следующему экрану действий, в котором есть 2 опции host n join.

Если он щелкает host, он должен ввести имя игровой комнаты и нажать кнопку host.

При нажатии кнопки hostИмя игровой комнаты должно быть сохранено вместе с именем, введенным на первом экране для конкретного текущего пользователя.

Я сохранил имя пользователя в firestore, но я не уверен, как найти то же имя пользователя и добавить имя игровой комнаты для того же пользователя.на моем третьем экране.

Как мне добиться этого или на что я могу сослаться, чтобы сделать это?

Я добавил скелтон-изображения экранов приложения ниже:

1) Первый экран, где пользователь вводит имя пользователя: введите описание изображения здесь

2) Второй экран, где пользователь выбирает хост или присоединение: введите описание изображения здесь

3) Когда пользователь выбирает хост со второго экрана, он попадает на этот экран: введите здесь описание изображения

Код, который я использовал для хранения пользовательской информациие:

mFirestore= FirebaseFirestore.getInstance()
gamingSubmit.setOnClickListener(View.OnClickListener {
    val gamingUserName:String=gamingName.text.toString()
    val userMap=HashMap<String,Any>()
    userMap.put("gamingName",gamingUserName)
         mFirestore.collection("AllUsers").document("host").collection("hostids").document(gamingUserName).set(userMap)
         .addOnSuccessListener(OnSuccessListener {
              Toast.makeText(this@MainActivity,"Successfully submitted name",Toast.LENGTH_LONG).show()
          }).addOnFailureListener(OnFailureListener {e->
              val error=e.message                                                             Toast.makeText(this@MainActivity,"Error:"+error,
              Toast.LENGTH_LONG).show()
          })

1 Ответ

0 голосов
/ 15 февраля 2019

Если вы уже настроили firestore в своем проекте (если вы не можете использовать это руководство ), вам нужно только инициализировать экземпляр, что-то вроде:

// Access a Cloud Firestore instance from your Activity
val db = FirebaseFirestore.getInstance()

Тогда вы можетесохраните значения, используя:

// Create a new user with a game room
val userRoom = HashMap<String, Any>()
userRoom["name"] = "Ada"
userRoom["gameroom"] = "Lovelace"

// Add a new document with a generated ID
db.collection("userRooms")
    .add(userRoom)
    .addOnSuccessListener { documentReference ->
        Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.id)
    }
    .addOnFailureListener { e ->
        Log.w(TAG, "Error adding document", e)
    }

Приведенный выше код создаст новый документ с двумя полями: a name и gameroom.См. здесь подробнее о том, как манипулировать данными в firestore.

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