gpt4 book ai didi

android - 如何在 Firebase 中检查写入任务是否成功

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:11 25 4
gpt4 key购买 nike

我是 Firebase 的新手,需要知道如何检查我的写入任务是否成功,因为如果我不这样做,MainActivity 就会启动并弄乱我的 Register 进度。

这会检查 Username 是否已被占用,如果不是则注册用户:

Query usernamequery = myRef.orderByChild("Username").equalTo(Username);

usernamequery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
if (snapshot.exists()) {
// TODO: handle the case where the data already exists
editText.setError("Username taken!");
return;
}
else {
// TODO: handle the case where the data does not yet exist
myRef.child("Users").child(Username).child("Userid").setValue(user.getUid());
myRef.child("Users").child(Username).child("Username").setValue(Username);
startActivity(maps);
finish();
}
}

@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(Username.this, "Error", Toast.LENGTH_LONG).show();
}
});

但我希望主要 Activity ( map )的 Intent 仅在以下情况下被触发myRef.child("Users").child(Username).child("Userid").setValue(user.getUid());

另一个完成任务并成功。

我能做什么?

最佳答案

要知道服务器上的写操作何时完成,请添加一个完成监听器:

myRef.child("Users").child(Username).child("Userid").setValue(user.getUid(), new DatabaseReference.CompletionListener() {
void onComplete(DatabaseError error, DatabaseReference ref) {
System.err.println("Value was set. Error = "+error);
// Or: throw error.toException();
}
});

如果出现错误,详细信息将在error 操作中。如果写入操作没有问题地完成,error 将为 null

如果您想通过一次操作写入多个位置,您需要查看 update() method

记录了 setValue() 的正确重载 here .

关于android - 如何在 Firebase 中检查写入任务是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41403085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com