android - 如何从 Firestore 获取文档 ID 并在实时数据库路径中使用它?
问题描述
我正在尝试创建一个像这样工作的“赞”按钮:当用户单击赞按钮时,我将使用用户 ID 在我的实时数据库中添加一个赞值。我的项目也使用 Firestore,我想使用那里的数据在实时数据库中构建一个新“喜欢”的路径。
以下是我从 Firestore 获取文档 ID 以稍后构建实时数据库路径的方法。
private FirebaseAuth mAuth;
FirebaseUser currentUser;
private FirebaseFirestore db = FirebaseFirestore.getInstance();
FirebaseDatabase database = FirebaseDatabase.getInstance();
private DatabaseReference LikesRef;
int CountLike;
private String currentUserI;
Boolean cheker = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_anu_detals);
mAuth = FirebaseAuth.getInstance();
currentUserI = mAuth.getCurrentUser().getUid();
final String PostKey = db.collection("Anu").document().getId();
LikesRef = FirebaseDatabase. getInstance().getReference().child("Like");
这是添加喜欢的按钮。如果此人再次单击,我将从currentuser
数据库中删除并算作“不喜欢”。
bt_like.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
cheker = true;
LikesRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (cheker.equals(true)) {
if (dataSnapshot.child(PostKey).hasChild(currentUserI)) {
LikesRef.child(PostKey).child(currentUserI).removeValue();
likecheker = false;
}
else
{
LikesRef.child(PostKey).child(currentUserI).setValue(true);
cheker = false;
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
我没有收到任何错误,但数据(文档 ID 和当前用户)不会进入实时数据库。如何从 Firestore 获取参考/ID 以在实时数据库中使用?
解决方案
推荐阅读
- sql-server - 转换数据类型时 ssis 中的问题
- angular - 上下文菜单事件打开默认上下文菜单并触发事件
- ios - 执行与 ARKit 和 Multipeer 连接的交互我看不到用一个设备放置在第二个设备上的对象
- jenkins - Gitlab 和 jenkins 无需身份验证即可访问
- reactjs - 使用钩子看不到方法辅助函数内部的状态
- android - 如何获取所有正在运行的活动列表并选择从暂停到开始状态的任何活动?
- ignite - 如何在 SQL 创建命令 Apache Ignite 中使用同一个键需要引用两次的 Affinity Collocation?
- css - Senaite LIMS (Plone 4.3.18) css 在启用 https 的 Nginx 上不起作用
- git - 成功自动解决合并冲突后,使用 KDiff 审查合并操作
- javascript - 奇怪的无效或意外令牌错误