我如何知道 firebase firestore 是否已完成读取数据?
How do I know if firebase firestore has finished reading data?
我这里有一段代码可以根据 ID 获取用户名:
DocumentReference df = fstore.collection("Users").document(user.getUid());
df.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful())
{
DocumentSnapshot doc = task.getResult();
if (doc.exists())
{
username.setText("@"+ doc.get("Username").toString());
}
}
}
});
但是我注意到当我 运行 应用程序时更改用户名需要一段时间。我想在 Firestore 检索数据时显示进度条并在完成后将其禁用,我如何知道 Firestore 是否已完成获取用户名?
尝试使用 inProgress
标记。当您要进行调用以检索数据时,将标志设置为 true
,并在完成后将其设置回 false
。使用此标志来了解何时显示进度条(或加载微调器)。
最简单的解决方案是在布局文件中添加 ProgressBar。假设你有一个 ConstraintLayout,你可以这样添加它:
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"/>
然后在您的 activity class 中找到它,如下所示:
ProgressBar progressBar = findViewById(R.layout.progressBar)
并这样使用:
progressBar.setVisibility(View.VISIBLE) \ display it.
DocumentReference df = fstore.collection("Users").document(user.getUid());
df.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
progressBar.setVisibility(View.GONE) \ hide it.
DocumentSnapshot doc = task.getResult();
if (doc.exists()) {
username.setText("@"+ doc.get("Username").toString());
}
}
}
});
我这里有一段代码可以根据 ID 获取用户名:
DocumentReference df = fstore.collection("Users").document(user.getUid());
df.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful())
{
DocumentSnapshot doc = task.getResult();
if (doc.exists())
{
username.setText("@"+ doc.get("Username").toString());
}
}
}
});
但是我注意到当我 运行 应用程序时更改用户名需要一段时间。我想在 Firestore 检索数据时显示进度条并在完成后将其禁用,我如何知道 Firestore 是否已完成获取用户名?
尝试使用 inProgress
标记。当您要进行调用以检索数据时,将标志设置为 true
,并在完成后将其设置回 false
。使用此标志来了解何时显示进度条(或加载微调器)。
最简单的解决方案是在布局文件中添加 ProgressBar。假设你有一个 ConstraintLayout,你可以这样添加它:
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"/>
然后在您的 activity class 中找到它,如下所示:
ProgressBar progressBar = findViewById(R.layout.progressBar)
并这样使用:
progressBar.setVisibility(View.VISIBLE) \ display it.
DocumentReference df = fstore.collection("Users").document(user.getUid());
df.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
progressBar.setVisibility(View.GONE) \ hide it.
DocumentSnapshot doc = task.getResult();
if (doc.exists()) {
username.setText("@"+ doc.get("Username").toString());
}
}
}
});