Ale*_*303 6 android firebase firebase-authentication firebase-realtime-database
我对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();
}
});
Run Code Online (Sandbox Code Playgroud)
但我希望只有在激活时才会触发Intent to Main Activity(地图)
myRef.child("Users").child(Username).child("Userid").setValue(user.getUid());
另一个完成任务并取得成功.
我能做什么?
Fra*_*len 24
要知道写操作何时完成,请添加完成侦听器:
myRef.child("Users").child(Username).child("Userid").setValue(user.getUid(), new DatabaseReference.CompletionListener() {
void onComplete(DatabaseError error, DatabaseReference ref) {
System.out.println("Value was set. Error = "+error);
}
});
Run Code Online (Sandbox Code Playgroud)
如果您想通过一次操作写入多个位置,则需要查看该update()方法:https://firebase.google.com/docs/database/android/read-and-write#updating_or_deleting_data
setValue()此处记录了正确的重载:https://firebase.google.com/docs/reference/android/com/google/firebase/database/DatabaseReference.html#setValue(java.lang.Object,%20com.google.firebase .database.DatabaseReference.CompletionListener)
| 归档时间: |
|
| 查看次数: |
7485 次 |
| 最近记录: |