java - 从 Firestore 中提取数据 document.getData()
问题描述
我想从 Firestore document.getData() 中提取数据
我要做的是:
从 Firestore 获取数据并在 Java 文件中提取该数据并在文本视图中显示提取的数据
我的完整 Android Java 代码
package com.verify.humanverify.ui.dashboard;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.QueryDocumentSnapshot;
import com.google.firebase.firestore.QuerySnapshot;
import com.verify.humanverify.R;
import com.verify.humanverify.ui.notifications.NotificationsViewModel;
import java.util.List;
public class DashboardFragment extends Fragment {
private DashboardViewModel dashboardViewModel;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
dashboardViewModel =
new ViewModelProvider(this).get(DashboardViewModel.class);
View root = inflater.inflate(R.layout.fragment_dashboard, container, false);
final TextView textView = root.findViewById(R.id.aadharnoni);
dashboardViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(getActivity());
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("Details").whereEqualTo("Person E-Mail", acct.getEmail()).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d("Data", document.getId() + " => " + document.getData());
textView.setText(document.getData()+document.getId());
}
} else {
Log.w("Error", "Error getting documents.", task.getException());
}
}
});
}
});
return root;
}
}
来自 Firestore 的主要数据
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d("Data", document.getId() + " => " + document.getData());
textView.setText(document.getData()+document.getId());
}
} else {
Log.w("Error", "Error getting documents.", task.getException());
}
}
我想从这里提取数据
Log.d("Data", document.getId() + " => " + document.getData());
textView.setText(document.getData()+document.getId());
从此方法获取数据
document.getData()
我的 XML 代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.dashboard.DashboardFragment"
>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ImageView
android:id="@+id/user_image"
android:layout_width="203dp"
android:layout_height="208dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.12"
android:layout_gravity="center"
/>
<TextView
android:id="@+id/aadharnoni"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/denk_one"
android:text=""
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/user_image"
app:layout_constraintVertical_bias="0.076"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/aadhar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/denk_one"
android:text=""
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/aadharno"
app:layout_constraintVertical_bias="0.076"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/denk_one"
android:text=""
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/aadhar"
app:layout_constraintVertical_bias="0.076"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/dob"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/denk_one"
android:text=""
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gender"
app:layout_constraintVertical_bias="0.076"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
我必须显示数据的文本视图
<TextView
android:id="@+id/aadharnoni"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/denk_one"
android:text=""
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/user_image"
app:layout_constraintVertical_bias="0.076"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/aadhar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/denk_one"
android:text=""
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/aadharno"
app:layout_constraintVertical_bias="0.076"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/denk_one"
android:text=""
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/aadhar"
app:layout_constraintVertical_bias="0.076"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/dob"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/denk_one"
android:text=""
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/gender"
app:layout_constraintVertical_bias="0.076"
android:layout_gravity="center"
android:layout_marginTop="10dp"/>
这是我得到的收藏
D/Data: UN5RqHsimOvXAMF1sTtY => {Person Photo URL=https://lh3.googleusercontent.com/a-/AOh14GhQbVE3TmhXdpi-vxYSa5QuUxOXVQ95zYotBSzv=s96-c, Person Id=112019185671391718103, Aadhar=XXXXXX, Person Given Name=Krishna, Driving License=XXXXXX, Person Name=Krishna Wadhwani, Person Family Name=Wadhwani, Person E-Mail=kwswhwmw@gmail.com, Date Of Birth=XXXXXX}
例如,我想在不同的 TextView 中显示这些所有字段
Person E-Mail In E-Mail Text View
等等...
提前致谢来自 KOOL WINGS
解决方案
如果你想要单字段数据。然后只需使用.get(/*path*/)
.
你可以尝试这样的事情来获得Name
:
Log.e("name", document.get("Person Given Name").toString());
推荐阅读
- python - Flask Restful 读取文件
- ios - 应用程序构建提交到应用商店连接不正确的版本
- sql - 如何在 SQL Server 中拆分带有一些特殊字符的字符串值?
- c# - 安全 cookie Asp.Net Core
- javascript - 仅使用 JS 确定 WebView 是否不可见
- c - 控制流和循环:为什么程序的输出是 0 而不是 000?
- c - 林间空地键盘(转义,箭头)加速器
- sql - 选择除特定列中具有最大值的行之外的所有内容
- eclipse - 运行 build.xml 时构建失败
- javascript - 添加作为命令行参数给出的数字的推荐方法(速度,清晰度)