Sha*_*ada 5 java android firebase firebase-realtime-database
我正在开发一个项目,用户请求我们的代客服务,另一方面代客接受请求.
我使用Firebase作为后端,并根据要求客户uid保存在'request'孩子.
当代客接受请求时,客户uid应从"请求"节点移动到"正在进行"节点.
我怎样才能做到这一点?
小智 6
我建议使用这个:
public void moveFirebaseRecord(Firebase fromPath, final Firebase toPath)
{
fromPath.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
toPath.setValue(dataSnapshot.getValue(), new Firebase.CompletionListener()
{
@Override
public void onComplete(FirebaseError firebaseError, Firebase firebase)
{
if (firebaseError != null)
{
System.out.println("Copy failed");
}
else
{
System.out.println("Success");
}
}
});
}
@Override
public void onCancelled(FirebaseError firebaseError)
{
System.out.println("Copy failed");
}
});
}
Run Code Online (Sandbox Code Playgroud)
这来自这个来源:https://gist.github.com/katowulf/6099042.我在我的JavaEE代码和我的Android应用程序中多次使用它.
您传递了fromPath和toPath.这是一个复制品而不是一个动作,因此原件也将保留在原来的位置.如果要删除,可以在System.out.println("Success")之后对fromPath执行设置值; .
从编译firebase-database:11.0.1开始,这与新类引用的功能相同(https://firebase.google.com/support/guides/firebase-android 2017年7月5日)
private void moveGameRoom(final DatabaseReference fromPath, final DatabaseReference toPath) {
fromPath.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
toPath.setValue(dataSnapshot.getValue(), new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError firebaseError, DatabaseReference firebase) {
if (firebaseError != null) {
System.out.println("Copy failed");
} else {
System.out.println("Success");
}
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9380 次 |
| 最近记录: |