#android #firebase #kotlin #firebase-realtime-database #android-recyclerview
#Android #firebase #kotlin #firebase-realtime-database #android-recyclerview
Вопрос:
Я создал новое приложение-макет (ManualRecyclerView), чтобы протестировать, как извлекать данные из базы данных Firebase Realtime в RecyclerView — GridView.
Поэтому я внедряю зависимости и подключаю приложение к Firebase.
Я настроил базовый пользовательский интерфейс и код для адаптера.
НО! Как только я его тестирую и ввожу данные, данные отправляются в другую базу данных Firebase(Sweet Dreams). Которая является базой данных для другого проекта, над которым я работаю.
Меня беспокоит то, что я уже исправил .json
файл
Файл .json
{
"project_info": {
"project_number": "493876747245",
"firebase_url": "https://manualrecyclerview.firebaseio.com",
"project_id": "manualrecyclerview",
"stora&e_bucket": "manualrecyclerview.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:493876747245:android:aece709f70cbe8d86ce5e4",
"android_client_info": {
"packa&e_name": "dcbrh.ph.manualrecyclerview"
}
},
"oauth_client": [
{
"client_id": "493876747245-t3ekrflf&6k4a7qirbt7fqe065&rm6pr.apps.&oo&leusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyDJItnNjZ72-ZDVUXzpR_nK7ea6d31vcUY"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "493876747245-t3ekrflf&6k4a7qirbt7fqe065&rm6pr.apps.&oo&leusercontent.com",
"client_type": 3
}
]
}
}
}
],
"confi&uration_version": "1"
}
Основное действие
packa&e dcbrh.ph.manualrecyclerview
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Lo&
import android.wid&et.Toast
import com.&oo&le.firebase.auth.FirebaseAuth
import com.&oo&le.firebase.database.FirebaseDatabase
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
recyclerView_main.adapter = MainAdapter()
button_storeMovie_main.setOnClickListener {
Lo&.d("MainActivity", "Storin& data in FirebaseDatabase")
Toast.makeText(this, "Storin& data...", Toast.LENGTH_SHORT).show()
storeMovieInFirebaseDatabase()
}
}
private fun storeMovieInFirebaseDatabase() {
val uid = FirebaseAuth.&etInstance().uid.toStrin&()
val title = editText_inputTitle_main.text.toStrin&()
val price = editText_inputPrice_main.text.toStrin&()
val movieData = Movie(title, price)
FirebaseDatabase.&etInstance().&etReference("movies/$uid/").setValue(movieData)
.addOnSuccessListener {
Lo&.d("MainActivity", "Data stored successfully | UID = $uid")
Toast.makeText(this, "Data stored successfully", Toast.LENGTH_SHORT).show()
return@addOnSuccessListener
}
.addOnFailureListener{
Lo&.d("MainActivity", "Data failed to store")
Toast.makeText(this, "Data failed to store", Toast.LENGTH_SHORT).show()
return@addOnFailureListener
}
}
}
class Movie(val name: Strin&, val price: Strin&) {
constructor(): this("", "")
}
Основной адаптер
packa&e dcbrh.ph.manualrecyclerview
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.wid&et.RecyclerView
import kotlinx.android.synthetic.main.card_view_layout.view.*
class MainAdapter: RecyclerView.Adapter<CustomViewHolder&&t;() {
val productTitles = listOf("The Bird Box", "Extraction", "Bad Boys", "300 Spartans", "Project X")
override fun &etItemCount(): Int {
return productTitles.size
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
val cellGrid = layoutInflater.inflate(R.layout.card_view_layout, parent, false)
return CustomViewHolder(cellGrid)
}
override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
val productTitles = productTitles.&et(position)
holder.si&ht.apply {
cardView_textView_title.text = productTitles
cardView_textView_price.text = "Php20.00"
}
}
}
class CustomViewHolder(val si&ht: View): RecyclerView.ViewHolder(si&ht) {
}
Приложение-макет
приложение для ручного просмотра
База данных
База данных в реальном времени
В базу данных ManualRecyclerView ничего не отправляется.
Комментарии:
1. Ваша проблема, безусловно, связана с конфигурацией.
2. Есть идеи, как я могу это исправить?
3. Проверьте, является ли . файл json является правильным.
4. Я уже проверил . файл json и даже загрузил его снова, но безрезультатно
Ответ №1:
если я правильно понимаю, похоже, что вы используете один и тот же проект Firebase в обоих ваших проектах Android Studio. Поэтому внимательно проверьте структуру ваших проектов Firebase
Комментарии:
1. где я могу увидеть эту структуру? Я все еще новичок в firebase
2. вы можете открыть firebase console и просмотреть свои существующие проекты