【问题标题】:Multiple Update Firebase Database Android多次更新 Firebase 数据库 Android
【发布时间】:2017-11-28 16:58:31
【问题描述】:

我正在创建一个应用程序,学生将使用该应用程序扫描老师创建的班级的二维码。

学生扫描后,其详细信息将存储在班级列表数据中。我的问题是当我尝试更改名字、中间名和姓氏时,只有第一个框在更新,而第二个和第三个框没有更新。

这里有人可以帮帮我吗?

这是更新第一个框的代码:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String uid = user.getUid();
ref = FirebaseDatabase.getInstance().getReference();
ref.child("users").child("student").child(uid).addListenerForSingleValueEvent(new ValueEventListener() {
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    String uid = user.getUid();
    String newFirstName = oldEmail.getText().toString().trim();
    String newMiddleName = middlename.getText().toString().trim();
    String newLastName = lastname.getText().toString().trim();
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

        ref.child("users").child("student").child(uid).child("firstname").setValue(newFirstName);
        ref.child("users").child("student").child(uid).child("middlename").setValue(newMiddleName);
        ref.child("users").child("student").child(uid).child("lastname").setValue(newLastName);
        progressBar.setVisibility(View.GONE);

    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
        Toast.makeText(AccountSettingsActivity.this, "Failed to update name!", Toast.LENGTH_SHORT).show();
        progressBar.setVisibility(View.GONE);
    }
});

下面是更新第二个和第三个框的代码:

ref.child("users").child("teacher").child("class").child("Listofstudents").child(user.getUid().toString().trim()).addListenerForSingleValueEvent(new ValueEventListener() {
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    String uid = user.getUid();
    String newFirstName = oldEmail.getText().toString().trim();
    String newMiddleName = middlename.getText().toString().trim();
    String newLastName = lastname.getText().toString().trim();

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot.exists()) {
            ref.child("users").child("teacher").child(ref.child("teacher").getKey()).child("class").child(ref.child("class").getKey()).child("Listofstudents").child(user.getUid().toString().trim()).child("firstname").setValue(newFirstName);
            ref.child("users").child("teacher").child(ref.child("teacher").getKey()).child("class").child(ref.child("class").getKey()).child("Listofstudents").child(user.getUid().toString().trim()).child("middlename").setValue(newMiddleName);
            ref.child("users").child("teacher").child(ref.child("teacher").getKey()).child("class").child(ref.child("class").getKey()).child("Listofstudents").child(user.getUid().toString().trim()).child("lastname").setValue(newLastName);
            // TODO: handle the case where the data already exists
        }
        else {
            // TODO: handle the case where the data does not yet exist
        }
    }

    @Override
    public void onCancelled(DatabaseError firebaseError) {
        Toast.makeText(AccountSettingsActivity.this, "Failed to update name!", Toast.LENGTH_SHORT).show();
        progressBar.setVisibility(View.GONE);
    }
});

【问题讨论】:

    标签: android firebase firebase-realtime-database firebase-authentication qr-code


    【解决方案1】:

    您无需添加 listener 即可在 Firebase 数据库中进行更新。

    请在post查看我的回答。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多