我尝试了removeValue
和setvalue(null)
,但它仍然用null替换基中的值。
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
Button mButtonSee;
TextView mTextViewPromo;
DatabaseReference mRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mPromoRef =
mRef.child("delivery").child("0").child("promokod");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonSee = findViewById(R.id.buttonSee);
mTextViewPromo = findViewById(R.id.promo);
mButtonSee.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPromoRef.addListenerForSingleValueEvent(new
ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String text = dataSnapshot.getValue(String.class);
mTextViewPromo.setText(text);
mPromoRef.removeValue();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
}
因此,我想在单击按钮时从第一个数组中获取一个值,然后删除它,再次从新的第一个数组中获取值。
它的数据库结构:
我的新代码:
public class MainActivity extends AppCompatActivity {
Button mButtonSee;
TextView mTextViewPromo;
DatabaseReference mRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mPromoRef = mRef.child("delivery");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonSee = findViewById(R.id.buttonSee);
mTextViewPromo = findViewById(R.id.promo);
mButtonSee.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPromoRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
LinkedList<String> values = new LinkedList<>();
boolean isFirst = true;
for (DataSnapshot codeSnapshot: dataSnapshot.getChildren()) {
if (isFirst) {
isFirst = false;
}
else {
String text = codeSnapshot.getValue(String.class);
values.add(text);
}
}
mPromoRef.setValue(values);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
throw databaseError.toException();
}
});
}
});
}
}
logcat:2019-02-20 02:11:25.263 163 1-2110/?E/AudioFlinger:内存不足,无法容纳AudioTrack大小=131296
2019-02-20 02:11:25.263 163 1-2110/?E/AudioFlinger:createRecordTrack_l()initCheck失败-12;没有控制块?
2019-02-20 02:11:25.271 265 1-11949/com.google.android.googleQuickSearchbox:搜索E/AudioreCord-JNI:创建AudioRecord实例时出错:初始化检查失败,状态为-12。
2019-02-20 02:11:25.274 265 1-11949/com.google.android.googleQuickSearchbox:search e/android.media.AudioRecord:初始化本机AudioRecord对象时错误代码-20。
2019-02-20 02:11:25.274 265 1-11949/com.google.android.googleQuickSearchBox:Search I/MicrophoneInputStream:mic_started SR:16000 CC:16 SO:6
2019-02-20 02:11:25.275 265 1-11949/com.google.android.googleQuickSearchBox:Search E/ActivityThread:未能找到com.google.android.apps.gsa.testing.ui.audio.Recorded的提供商信息
运行:
我如何删除记录“苹果”(在图片中标记)? 根据文档,要移除一个项,需要对引用调用removeValue()。但要获得引用,我需要子ID。因为它是一个随机生成的id(-kisnx87ayigsh3ilp0d),如何删除它?
我以为上面的办法行得通,但它失败了。我把它放在渲染行部分。它出现了reference.remove失败。第一个参数必须是有效的函数。就像在这些房间里,它有信息,我认为这是我出错的地方,但我不知道如何去做它。谢谢。
我在Android应用程序中使用Firebase实时数据库,并且有如下数据: 数据库映像 我想删除周末所有用户的“点”:选项卡。每个周末自动删除。我该怎么做呢。
问题内容: 现在我收到错误消息如何成功清除数据库或迁移? 问题答案: 要从磁盘上完全删除Realm文件并从头开始,只需使用手动删除它即可。 例如,要删除默认的Realm文件: 如果要保留Realm文件,但将对象完全清空,则可以调用以下方法: 更新: 我觉得我在原始答案中没有提到这一点。如果选择从磁盘删除Realm文件,则必须在应用程序中的任何线程上打开它之前,都必须这样做。打开后,Realm会在内
我在Android应用程序中使用Firebase实时数据库,数据如下: 如何从javascript访问该数据。我只想编写一个函数来获取每个endTime的值,并和当前时间和if endTime进行比较 事件是固定值。 Indjija、Vojvodina和-KsB2mVkpgQe_fRyFFH4是自动生成的,所以有可能有更多像这两个的值。 我知道如何解决这个问题在Android Studio与Jav
我仍在开发我的登录应用程序。此时,用户可以注册、登录和更新配置文件信息。数据存储在firebase实时数据库中,该装置也通过firebase工作。我想添加一个“删除配置文件”按钮,以便从firebase中删除用户信息。我弄清楚了如何从自动认证过程中删除用户。现在我尝试对Uid调用remove()函数,因此现在数据在实时数据库中被删除,但仍在Firebase身份验证中,如果删除userdata,应用