Несоответствие типов: предполагаемый тип - String?но ожидалось - PullRequest
0 голосов
/ 22 октября 2018

Благодаря этой строке в моих кодах:

var myRef = child_myRef.child(FirebaseAuth.getInstance().uid) 

Type mismatch: inferred type is String? but String was expecte

Ответы [ 5 ]

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

Это потому, что значение FirebaseAuth.getInstance().uid может быть null, поэтому сначала проверьте, не является ли оно нулевым, затем выполните вашу операцию.

if(FirebaseAuth.getInstance().uid!=null){
var myRef = child_myRef.child(FirebaseAuth.getInstance().uid)
myRef.child("jina").setValue(Fname.text.toString())
myRef.child("tarehe").setValue(bDate.text.toString())
myRef.child("place").setValue(place.text.toString())

}

Если вы проверите с помощью FirebaseAuth.getInstance().uid!!, этовызовет Null Pointer Exception, и ваше приложение упадет, если значение FirebaseAuth.getInstance().uid будет равно null, поэтому попробуйте описанный выше подход (как я написал в примере)

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

Причина, по которой ваш FirebaseAuth.getInstance().uid равен String? (может быть нулевым), но для ввода .child() требуется String (нет пустого значения), поэтому, пожалуйста, проверьте нулевое значение перед этим:

FirebaseAuth.getInstance().uid?.let{
  var myRef = child_myRef.child(it) 
  .....
}

Или, если вы убедитесь, что FirebaseAuth.getInstance().uid никогда не имеет значения Null, вы можете использовать FirebaseAuth.getInstance().uid!!, но это не очень хороший подход

0 голосов
/ 22 октября 2018
var myRef = child_myRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid())
myRef.child("jina").setValue(Fname.text.toString())
myRef.child("tarehe").setValue(bDate.text.toString())
myRef.child("place").setValue(place.text.toString())

Надеюсь, вы пытаетесь поместить все детали под идентификатором пользователя.Так что, если это так, пожалуйста, измените вашу ссылку на myRef.Таким образом, вы можете поместить его под своим идентификатором пользователя все вышеуказанные детали.

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

Вы можете заменить его на child_myRef.child(FirebaseAuth.getInstance().uid!!) или проверить на null.

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